I have a list of objects. Every object has 2 or 3 parameters, for example:
class Object
{
string a;
string b;
string c;
}
List<Object> = new List<Object>
{
new Object("a1","b1","c1");
new Object("a1","b2","c2");
new Object("a1","b2","c3");
new Object("a2","b3","c4");
new Object("a2","b4","c5");
new Object("a3","b5")
new Object("a3","b6","c6")
}
I want to show this list in this way (treeview) and have no idea how to do it.
a1
b1
c1
b2
c2
c3
a2
b3
c3
c4
b4
c5
a3
b5
b6
c6
I have tried to divide this in 3 related list, but this code takes a lot of time, becasue the list have over 1000 object. How to do it perfectly?
Linq approach
foreach (var item1 in itemList.Where(x => x.a != null).GroupBy(x => x.a))
{
Console.WriteLine(item1.Key);
foreach (var item2 in item1.Where(x => x.b != null).GroupBy(x => x.b))
{
Console.WriteLine(" " + item2.Key);
foreach (var item3 in item2.Where(x => x.c != null))
{
Console.WriteLine(" " + item3.c);
}
}
}