如果item是唯一的,则写入列表的LINQ语句

时间:2015-01-21 15:45:27

标签: linq

我有一个名为' Categories'的字符串列表,以及一个名为' category'的字符串。使用LINQ,我如何添加'类别'到'类别'只有'类别'列表中是否已存在?

3 个答案:

答案 0 :(得分:2)

你根本不需要Linq:

if(!categories.Contains(category))
    categories.Add(category);

答案 1 :(得分:2)

LINQ用于查询数据。你不需要LINQ。此外,如果您只对不同的项目感兴趣,请使用HashSet<T>

HashSet<string> categories = new HashSet<string>();
categories.Add("category");

请参阅:HashSet<T>

  

HashSet集合未排序且不能包含重复项   元素。如果订单或元素重复比重要   对于您的应用程序的性能,请考虑使用List类   与Sort方法一起使用。

如果元素的顺序很重要,那么您可以使用带有支票的List<T>,例如:

List<string> categories = new List<string>();
if(!categories.Contains("category"))
{  
    categories.Add("category");
}

答案 2 :(得分:0)

首先,你真的需要一个清单吗? (具体来说,索引访问?)

如果您只需要一组可以迭代的独特项目,那么使用HashSet可能会更好。那就是:

categories.Add(category);    // return 'false' if category already present.