我想使用linq重新排列这个列表,但重新排序的列表务必与原始列表的类型相同(不是愚蠢的“var =”),并且“order by”被提供为STRING(不正常OrderBy类型安全)。如何使用linq使用orderBy字符串重新排序列表的列表?
public class People{
public string Name { get; set; }
public int Age { get; set; } }
List<People> lst = new List<People>();
People p = new People();
p.Name = "AAA";
p.Age = 10;
lst.Add(p);
p = new People();
p.Name = "XXX";
p.Age = 5;
lst.Add(p);
List<People> orderedListByAge = lst.SomeSort("Age");
List<People> orderedListByName = lst.SomeSort("Name");
你不明白'var'是什么?同时显示你到目前为止所做的。这是免费的代码写作网站。请参阅http://stackoverflow.com/help/how-to-ask和http://stackoverflow.com/help/mcve – bc004346
_(没有愚蠢的“var =”)_你为什么如此反对这个想法这种类型的短手?我不在乎linq查询产生的数据类型,但它做了什么。我的意思是,在每个查询中使用.ToList()都不是linq的懒惰本质,也不会使查询更容易。 – Mafii
“var =”是愚蠢的,因为1)记住我的无类型代码,如可怕的语言JavaScript和视觉狐狸亲。 2)在“var =”之后,如果您需要以输入方式使用结果集,则需要投射。 3)在很多情况下,代码的可读性较差。例如:var = MyMethod()。您需要检查方法的返回值以了解发生了什么。 4)提醒我指点。我努力避免在代码中使用“var =”。有很多方法可以使编码更容易。根据我的愚见,“var =”不是其中之一。 – Freddy