我有一个数据表结果集,其中有两列,我需要重点关注ActionCode和ProcessID
我试图找到最快的方法来查看是否存在针对同一ProcessID的AcitonCodes A和E。
我正在找到所有这些有关如何在数据表中搜索值的示例,但无法弄清楚如何将其限制为相同的ID。请帮忙。
此功能现在可以工作,它以返回所有A和E行的方式工作,但是我似乎无法找到仅当A和E都属于同一个ProcessID时才返回结果的方法。
DataRow[] foundAuthors = dt.Select("ActionCode = '" + 'A' + "' or ActionCode = '" + 'E' + "'" );
和
var x = from e in dt.AsEnumerable()
where e.Field<int>("ActionCode") == 'A' &&
e.Field<int>("SeriesID") == seriesid
select e;
和最后一个问题。 LINQ是实现此目标的最佳方法吗?我应该使用“较新的”和更优选的名称空间吗? 谢谢!
答案 0 :(得分:0)
在没有IDE的情况下,我出现了以下LINQ,可能需要进行调整:
Child object
答案 1 :(得分:0)
这应该为您带来所需的东西(Here is full DotNetFiddle Example of the below):
string[] myList = new string[]{"A", "E"};
var results = authors.Where(x => myList.Contains(x.ActionCode))
.GroupBy(x => x.ProcessId, x => x.ActionCode)
.Where(d => myList.All(dv => d.Contains(dv)))
.Select(x => new { ProcessId = x.Key, ActionCode = x.ToList()} ).ToList();