【发布时间】:2015-12-26 16:39:19
【问题描述】:
我有以下查询,但它有 2 个我认为不好的 foreach 循环。如何使用 linq 从 IEnumerable> 对象中获取不同的值。
下面是我写的代码,
var floatingIds= subInfo.Ranges.Select(c => c.RangeIDs.Select(s=>s)).Distinct();
var floatIds= new List<Guid>();
foreach (var ids in floatingIds)
foreach (var id in ids)
{
if (!floatIds.Contains(id))
{
floatIds.Add(id);
}
}
我有这篇文章,但仍然没有得到预期值,但上面的代码给出了正确的 ID How do I avoid using nested foreach statements by using lambda or linq in this scenario?
【问题讨论】:
-
让“你可以使用
SelectMany”的答案开始... -
@IvanStoev:是的.. 涉及 LINQ 的答案应该解释相关的运算符(在这种情况下为
SelectMany( )),而不仅仅是显示其用途。 -
朋友,您可能会发现stackoverflow.com/questions/958949/… 和youtube.com/watch?v=9tgz3aVNblM 很有用。这个想法是使列表列表成为列表
-
实际上是错误的,我使用 selectmany 编写的内容有效,原因是我传递了错误的值集。总之谢谢
-
@displayname 你是正确的