.NET List.Distinct

2019-06-15 18:28发布

I'm using .NET 3.5. Why am I still be getting:

does not contain a definition for 'Distinct'

with this code:

using System.Collections.Generic;

       //.. . . . . code


    List<string> Words = new List<string>();
       // many strings added here . . .
    Words = Words.Distinct().ToList();

4条回答
一夜七次
2楼-- · 2019-06-15 18:37

Are you

using System.Linq;

?

Distinct is an extension method defined in System.Linq.Enumerable so you need to add that using statement.

And don't forget to add a reference to System.Core.dll (if you're using VS2008, this has already been done for you).

查看更多
放我归山
3楼-- · 2019-06-15 18:38

From msdn blog: Charlie Calvert MSDN Blog Link

To use on .net fiddle : --project type: Console

using System;
using System.Collections.Generic;
using System.Linq;

public class Program
{
    public static void Main()
    {
        Console.WriteLine("Hello World");
        var listA = new List<int> { 1, 2, 3, 3, 2, 1 };
        var listB = listA.Distinct();

        foreach (var item in listB)
        {
            Console.WriteLine(item);
        }
    }
}
// output: 1,2,3
查看更多
beautiful°
4楼-- · 2019-06-15 18:51
 List<string> words  = new List<string>();

 // many strings added here . . .

 IEnumerable <string> distinctword  =Words .distinct();

 foreach(string index in distinctword )
 {
      // do what u want here . . .
 }
查看更多
Fickle 薄情
5楼-- · 2019-06-15 18:55

You forgot to add

using System.Linq;

Distinct is an extension method that is defined in System.Linq.Enumerable, so you can only call it if you import that namespace.

You'll also need to add a reference to System.Core.dll.
If you created the project as a .Net 3.5 project, it will already be referenced; if you upgraded it from .Net 2 or 3, you'll have to add the reference yourself.

查看更多
登录 后发表回答