列表中的不同项目

时间:2015-06-04 13:23:49

标签: c# excel

我有一个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(),但我希望有类似或其他想法。

4 个答案:

答案 0 :(得分:2)

var values = Enumerable.Range(2, 1999)
                       .Select(i => ws.cells[i,3])
                       .Distinct()
                       .ToList();

答案 1 :(得分:0)

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);
    }
}

答案 2 :(得分:0)

使用包含

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);
    }
}

答案 3 :(得分:0)

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

var distinctList = lst.Distinct();

还有List.Contains(item)

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