【发布时间】:2021-07-22 14:58:33
【问题描述】:
我有一个通用的List MatchingResult 类型(参见下面的MatchingResult 类型实现)。
我能够使用 for 循环来获得我想要的结果,但我也想知道使用 lambda 表达式或 LINQ,如何提取与 @987654325 匹配的所有数据行(来自 Matches 属性) @属性?
MatchingResult 类:
public class MatchingResult
{
public DataRow Left { get; set; }
public IEnumerable<DataRow> Matches { get; set; }
}
这是我的MatchingResult列表:
List<MatchingResult> list = PopulateList();
最终输出将是满足上述条件的DataRows 列表。
编辑:DataRows 具有相同数量的列/名称和相同的顺序。
样本数据:
数据行(左)
Column1 | Column2 | Column3
--------+---------+--------
A | X | Y
数据行(匹配)
Column1 | Column2 | Column3
--------+---------+--------
A | X | Y
A | O | W
A | X | Y
在上面的示例中,预期的结果是包含以下数据的 DataRows 列表:
Column1 | Column2 | Column3
--------+---------+--------
A | X | Y
A | X | Y
【问题讨论】:
-
为了包含您想要保留的
DataRows,您要专门匹配什么。 -
Left 属性中的 DataRow,将其与 Matches 属性中的 DataRow 列表进行比较。 DataRows 包含相同的列。
-
到目前为止你尝试过什么?你在哪里卡住了?
-
所以您只想比较
Matches属性中的列名与Left属性(列名,如果它们匹配则包括DataRow对吗? -
没错@zaggler
标签: c#