【发布时间】:2017-07-15 12:14:22
【问题描述】:
我想使用 linq 重新排序此列表,但重新排序的列表必须与原始列表的类型相同(没有愚蠢的“var =”),并且“排序依据”提供为 STRING (不是常规的 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是什么吗?同时展示你到目前为止所做的事情。这是免费的非代码编写网站。请参阅stackoverflow.com/help/how-to-ask 和stackoverflow.com/help/mcve -
(没有愚蠢的“var =”) 你为什么这么反对这种类型的简写?我不在乎 linq 查询产生什么数据类型,但它做了什么。我的意思是,在每个查询上使用 .ToList() 并不是 linq 的懒惰特性,它不会让你的查询更容易阅读。
-
"var=" 很愚蠢,因为 1) 记住我的无类型代码,比如可怕的语言 javascript 和 visual fox pro。 2)“var=”后面如果需要以类型化的方式使用结果集,则需要进行强制转换。 3)在许多情况下,代码的可读性较差。例如:var=MyMethod()。您需要检查方法的返回值以了解发生了什么。 4)提醒我指针。我努力避免在我的代码中出现“var=”。有很多方法可以使编码更容易。在我看来,“var=" 不是其中之一。
标签: .net linq list sorting dynamic