繁体   English   中英

列表中的不同项目

[英]Distinct items in List

我有一个Excel电子表格,我试图用唯一值填充列表。 我找到了我不希望使用的LinqToExcel 最多会有2000行,不是很多。

我的想法是:

List<string> lst = new List<string>();
string item;

for (i=2; i<2001; i++)
{
    item = ws.cells[i,3];
    if(lst.**notInList**(item))
    {
        lst.Add(item);
    }
}

我知道这里没有notInList() ,但是我希望有类似的想法或其他想法。

var values = Enumerable.Range(2, 1999)
                       .Select(i => ws.cells[i,3])
                       .Distinct()
                       .ToList();
List<string> lst = new List<string>();
string item;

for (i=2; i<2001; i++)
{
    item = ws.cells[i,3];
    if(!lst.Contains(item))
    {
        lst.Add(item);
    }
}

使用包含来代替

List<string> lst = new List<string>();
string item;

for (i=2; i<2001; i++)
{
    item = ws.cells[i,3];
    if(!lst.Contains(item))
    {
        lst.Add(item);
    }
}

如果希望为相同的条目过滤项目,则可以使用linq中的.Distinct方法。

var distinctList = lst.Distinct();

还有List.Contains(item)

如果从一开始就知道此集合应仅包含唯一元素,则也可以考虑使用HashSet<T>代替。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM