ars*_*in3 16 c# linq-to-objects
我有一个List<Person>,而是希望将它们转换为简单处理为a List<string>,执行以下操作:
List<Person> persons = GetPersonsBySeatOrder();
List<string> seatNames = persons.Select(x => x.Name).ToList();
Console.WriteLine("First in line: {0}", seatNames[0]);
Run Code Online (Sandbox Code Playgroud)
.Select()LINQ to Objects对象上的语句是否保证不会更改列表成员的顺序?假设没有添加明确的不同/分组/排序
另外,如果首先使用任意.Where()子句,是否仍保证保持相对顺序,或者有时使用非迭代过滤?
正如Fermin在上面评论的那样,这实际上是一个重复的问题.我没有选择正确的关键字来搜索stackoverflow
小智 1
在当前的 .Net 实现中,它使用这样的代码。但不能保证将来会实施此实施。
private static IEnumerable<TResult> SelectIterator<TSource, TResult>(IEnumerable<TSource> source, Func<TSource, int, TResult> selector)
{
int index = -1;
foreach (TSource source1 in source)
{
checked { ++index; }
yield return selector(source1, index);
}
}
Run Code Online (Sandbox Code Playgroud)