我正在尝试查找是否为 csv 文件的每一行找到第一个列表的任何元素
第一个列表:
XX01235756777
YY01215970799
第二个列表(即 csv 文件):
Column_1|Column_2|Column_3|Column_4|Column_5|Column_6|Column_7
VX|2022-06-09 11:50:55|Y|Y|N|TT56431254135|Microsoft
VX|2022-06-09 11:50:55|Y|Y|N|XX01235756777|Meta
VX|2022-06-09 11:50:55|Y|Y|N|YY18694654355|Nokia
VX|2022-06-09 11:50:55|Y|Y|N|OO01215970799|BlackStone
VX|2022-06-09 11:50:55|Y|Y|N|YY01215970799|Alphabet
我的代码尝试:
List<string> filteredList = new List<string>();
using (StreamReader reader = new StreamReader(csvFilePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (line.Any(x => isinList.Contains(x.ToString())))
{
filteredList.Add(line);
}
}
}
return filteredList;
过滤列表应该是:
VX|2022-06-09 11:50:55|Y|Y|N|XX01235756777|Meta
VX|2022-06-09 11:50:55|Y|Y|N|YY01215970799|Alphabet
我成功地在 csv 文件的每一行中找到了一个元素。
但是如果每一行中都存在整个列表,我无法编写正确的 LINQ 来处理。
任何想法或任何你能指出的地方都会对我有很大帮助。
最佳答案
您最终将 csv 文件中的行拆分为字符,并根据 isinList 检查每个字符。您应该改为检查 isinList 中的任何字符串是否存在于 csv 文件的每一行中。
List<string> filteredList = new List<string>();
using (StreamReader reader = new StreamReader(csvFilePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
if (isinList.Any(x => line.Contains(x)))
{
filteredList.Add(line);
}
}
}
关于list - LINQ 查询从 csv 文件的列表中查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73620751/