我得到一个名为List<string>
的{{1}}:
Test
我想使用List<string> Test = new List<string>();
为其添加字符串,但首先我要检查它是否已存在于列表中。
我想到了这样的事情:
Test.Add();
但是,这会返回错误。
答案 0 :(得分:3)
如果您不想添加项目,我假设您已经添加
试试这个:
if (!Test.Contains("Teststring"))
{
Test.Add("Teststring");
}
答案 1 :(得分:2)
如果你不想两次添加一个项目,那么你可以使用HashSet<T>
作为一个很好的指标,它可以提高效率,但不允许重复项(如仅Dictionary
键)。
HashSet<string> Test = new HashSet<string>();
bool newString = Test.Add("Teststring");
如果您需要使用列表,请使用List.Contains
检查字符串是否已在列表中。
What is the difference between HashSet and List in C#?
但是您的代码表明您只想添加重复项。我认为这不是故意的。
答案 2 :(得分:1)
Any收到谓词。它确定集合中的任何元素是否与特定条件匹配。您可以使用循环结构强制执行此操作。但Any扩展方法提供了另一种方法。 见:
bool b1 = Test.Any(item => item == "Teststring");
您也可以使用:
if (!Test.Contains("Teststring"))
{
...
}
答案 3 :(得分:1)
在我看来,您在这里使用了错误的数据结构。您应该使用Hashset来避免重复。
Hashset的查找时间是O(1),而对于列表,它是O(n)
HashSet类提供高性能的集合操作。集合是一个不包含重复元素的集合,其元素没有特定的顺序。
这就是你的代码的样子。
HashSet<string> Test = new HashSet<string>();
Test.Add("Teststring");
答案 4 :(得分:0)
使用Test.Contains("TestString");