首页 > 解决方案 > 如何从包含在第一个列表中的第二个列表中获取具有值的列?

问题描述

我有两个清单。第一个列表具有匹配的列,该列在第二个列表中可用。我想用第二个列表中的值显示匹配的列。

在此处输入图像描述

            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() 值的匹配列

标签: c#listlinqdatatable

解决方案


您需要将 aList<string>与 a进行比较DataTable。您只对数据表中的一列感兴趣(我假设列名是“数据”)。

以下查询将获取列"Data"匹配中的所有行_filteredData

var result = FinalDiffData
               .AsEnumerable()
               .Where(p => _filtredData.Contains(p["Data"]));  // use the actual column name here

推荐阅读