Ozz*_*zah 4 c# sorting lambda list
Random r = new Random();
List<object> myList = new List<object>();
for (int i = 0; i < 100; i++)
  myList.Add(new { A = r.Next(), B = r.Next() });
myList.Sort( (obj1, obj2) => obj1.A.CompareTo(obj2.A) );
上面的代码定义了一个泛型List,用100个匿名变量填充它,有两个成员A和B.
假设我想在A上对myList进行排序.最后一行尝试对列表进行排序,但是这段代码显然不能编译,因为编译器不知道对象列表包含什么.
不使用LINQ,是否可以使用lambda或类似方法对此列表进行排序?
可以在没有LINQ的情况下对其进行排序,只要您设法使用var语法将列表声明为匿名类型的对象列表,或者愿意使用dynamic:
Random r = new Random();
List<dynamic> myList = new List<object>();
for (int i = 0; i < 100; i++)
    myList.Add(new { A = r.Next(), B = r.Next() });
myList.Sort( (obj1, obj2) => obj1.A.CompareTo(obj2.A) );