You can try this.
var ids = (from d in detail
where d.Category != "Accepted"
group d by new {d.ATM_Id, d.Date, d.Card ,d.Transit ,d.Ck} into grp
select grp.Min(x => x.autoId));
var toDelete = (from d in detail
where !ids.Contains(d.AutoId) && d.Category != "Accepted"
select d);
context.DeleteOnSubmit(toDelete);
You can just search for the ones you want and then recreate your new list of comma separated strings to store back to a file.
EG:
void Main()
{
var fields = new List<Field>{
new Field{Id = 1, Name = "A"},
new Field{Id = 1, Name = "A"},
new Field{Id = 2, Name = "B"},
new Field{Id = 1, Name = "A"},
new Field{Id = 3, Name = "C"},
new Field{Id = 2, Name = "B"},
};
// Grouped
var grouped = (from f in fields
group f by new {f.Id, f.Name} into grp
select new Field
{
Id = grp.Select(x => x.Id).FirstOrDefault(),
Name = grp.Select(x => x.Name).FirstOrDefault()
}
);
// Makes a list of the distinct Fields
var list_Of_CSV_Items = grouped.Select(x => string.Join(",", x.Id,x.Name));
System.IO.File.WriteAllLines(@"C:\Where_your_folder_is.txt", list_Of_CSV_Items);
}
public class Field
{
public int Id {get;set;}
public string Name {get; set;}
}