c# - 使用linq C#从另一个数组中的数组中查找和计数

标签 c# arrays linq count

我有以下场景:

我从数据源获取记录集合并将它们添加到列表

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/

相关文章:

java - 想要检索给定 WebElement 的 Xpath

c# - 使用 C# 的任务计划程序(计划 .bat(批处理)文件)

Java 数组中 max 和 min 的代码

ruby-on-rails - 来自数组的 RoR 字符串

c# - 将 LINQ Select 中的递归方法组转换为迭代方法

c# - 基于现有表创建 ASP.net 登录系统?

c# - 在 C# 中使用 App Config 文件中的值

javascript - 从带有子字段的平面列表构造层次结构树?

c# - 转换表以在 C# 中的 Linq 中添加更多列

c# - 带有 SqlParameters 的 SqlDataReader