我有一个文本文件,我正在阅读使用sr.readline()
的每一行
当我读到该行时,我想在列表中搜索它,该行应该已经添加到先前,然后将该行添加到新的(不同的)列表中。我该怎么做?
答案 0 :(得分:4)
List.Contains(string)
会告诉您列表是否已包含元素。
所以你想做的事情如下:
if (previousList.Contains(line)){
newList.Add(line);
}
答案 1 :(得分:0)
你可以循环这个逻辑:
public void DoWhatYouAreAskingFor(StreamReader sr, List<string> list)
{
string line = sr.ReadLine();
if (!list.Contains(line))
{
list.Add(line);
}
}
答案 2 :(得分:0)
你可以这样做。
List<string> listOfStrings = new List<string>() { "foo", "baz", "blah"};
string fileName = @"C:\Temp\demo.txt";
var newlist = (from line in File.ReadAllLines(fileName)
join listItem in listOfStrings
on line equals listItem
select line).ToList();
编辑:作为一个注释,我的解决方案使用流读取器短路并尝试在另一个列表中查找元素,而是使用LINQ将现有字符串列表的元素与给定输入文件中的行连接起来。
List.Contains(输入)当然没问题,如果您有很多要过滤的输入,您可能需要考虑将可搜索列表转换为HashSet。