Filter a list using Linq

  • Thread starter Thread starter bobis123
  • Start date Start date
B

bobis123

Guest
I have a list of data with header in a txt file:

ID;INDEX;NAME;SERIALS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SOME_ATTRIBUTE
1;12;HONDA*;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;13;HONDA*;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;14;HONDA;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;15;HONDA;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;16;HONDA*;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;17;HONDA;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
2;14;AUDI;123456789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
2;15;AUDI;123456789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;14;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;15;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;16;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;17;*MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;18;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;19;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;20;*MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;21;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A

This should be output (show data with max three indexes)
ID;INDEX;NAME;SERIALS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SOME_ATTRIBUTE
1;15;HONDA;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;16;HONDA*;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
1;17;HONDA;987654321;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
2;14;AUDI;123456789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
2;15;AUDI;123456789;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;19;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;20;*MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A
3;21;MUSTANG;225225;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;A

How can I do it using Linq?

So far
var results = someCarClass.CarList.OrderByDescending(order => order.Index)
.GroupBy(p => p.Id, p => p.Index, (key, g) => new { Id = key, Index = g.Take(3).ToList() });

string output = "";
foreach (var res in results) {
foreach (var index in res.Index) {
output += res.Id + ";" + index + "\n";
}
}
Console.WriteLine(output);
//problem is also that column header is much longer than my example.txt and data has thousands rows.

Thank you

Continue reading...
 
Back
Top