我有以下场景:
我从数据源获取记录集合并将它们添加到列表
List<Entity> e = new List<Entity>();
foreach (var elm in datasource)
{
e.Add(new Entity { First = elm.First, Second = elm.Second, Third = elm.Third });
}
这给了我类似的东西:
// -> First = John, Second = Sally, Third = Ingrid
// -> First = Sally, Second = Ingrid, Third = James
// -> First = Ingrid, Second = Sally, Third = James
我在一个列表中有一个可能的值数组,这些值可以是真值,也可以是负值
List<string> positives = { "John", "Sally" }
List<string> negatives = { "Ingrid", "James" }
我正在寻找一个优雅的原因来匹配我在通用列表 e 中的正数和负数的数量,按照上面的那样?使用 LINQ 可以实现这样的事情吗?
因为我不熟悉 LINQ,不知道从哪里开始。我试过类似的东西:
var pos = e.SelectMany(s => s in positives).Count()
但这会引发异常。
任何帮助将不胜感激
最佳答案
SQL在LINQ中的in
子句是Contains
方法。
测试:
var pos = e.SelectMany(s => positives.Contains(s)).Count();
我好像没看懂你的问题。再次阅读。
老实说,你的问题措辞不当。
但根据我的理解,我认为正确的回答是:
var pos = e.SelectMany(i => positives.Contains(i.First)
|| positives.Contains(i.Second)
|| positives.Contains(i.Third)).Count();
关于c# - 使用linq C#从另一个数组中的数组中查找和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19998168/