如何对 IEnumerable<string>
进行排序按字母顺序排列。这可能吗?
编辑:我将如何编写就地解决方案?
最佳答案
与您对任何其他可枚举对象进行排序的方式相同:
var result = myEnumerable.OrderBy(s => s);
或
var result = from s in myEnumerable
orderby s
select s;
或(忽略大小写)
var result = myEnumerable.OrderBy(s => s,
StringComparer.CurrentCultureIgnoreCase);
请注意,与 LINQ 一样,这会创建一个新的 IEnumerable
IEnumerable
List<string> myList = myEnumerable.ToList();
myList.Sort();
根据您的评论:
_components = (from c in xml.Descendants("component")
let value = (string)c
orderby value
select value
)
.Distinct()
.ToList();
或
_components = xml.Descendants("component")
.Select(c => (string)c)
.Distinct()
.OrderBy(v => v)
.ToList();
或者(如果你想稍后向列表中添加更多项目并保持排序)
_components = xml.Descendants("component")
.Select(c => (string)c)
.Distinct()
.ToList();
_components.Add("foo");
_components.Sort();
关于c# - 如何对 IEnumerable<string> 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630687/