c# - 如何从包含在第一个列表中的第二个列表中获取具有值的列?
问题描述
我有两个清单。第一个列表具有匹配的列,该列在第二个列表中可用。我想用第二个列表中的值显示匹配的列。
List<string> _filtredData = new List<string>();
_filtredData.Add("Broker");
_filtredData.Add("Loaction");
_filtredData.Add("StandardLineItem");
_filtredData.Add("Section");
foreach (DataColumn _dtCol in FinalDiffData.Columns)
{
if (matchedItems.Contains(_dtCol.ToString()))
{
_filtredData.Add(_dtCol.ToString());
}
}
_filtredData -> 包含第二个列表中可用的匹配列。
FinalDiffData.AsEnumerable() -> 这是第二个列表。
List<string> _filtredData = new List<string>();
_filtredData.Add("Broker");
_filtredData.Add("Loaction");
_filtredData.Add("StandardLineItem");
_filtredData.Add("Section");
foreach (DataColumn _dtCol in FinalDiffData.Columns)
{
if (matchedItems.Contains(_dtCol.ToString()))
{
_filtredData.Add(_dtCol.ToString());
}
}
var shortedListMismatchElementLocal = _filtredData;
var result = FinalDiffData.AsEnumerable().Where(p =>
shortedListMismatchElementLocal.Any());
请帮我正确回答。
根据您的上一条评论进行编辑
FinalDiffData.AsEnumerable() 列表的列如下
Broker, Loaction, StandardLineItem, Section, 2Q2019E, 3Q2019E, 4Q2019E, 2019E, 1Q2020E
等作为收入订单。_filterredData 列表有
Broker, Loaction, StandardLineItem, Section, 2Q2019E, 3Q2019E, 4Q2019E,
我想从 _filtredData 列表中获得具有 FinalDiffData.AsEnumerable() 值的匹配列
解决方案
您需要将 aList<string>
与 a进行比较DataTable
。您只对数据表中的一列感兴趣(我假设列名是“数据”)。
以下查询将获取列"Data"
匹配中的所有行_filteredData
。
var result = FinalDiffData
.AsEnumerable()
.Where(p => _filtredData.Contains(p["Data"])); // use the actual column name here