.NET List.Distinct - PullRequest
       33

.NET List.Distinct

10 голосов
/ 16 июля 2009

Я использую .NET 3.5. Почему я все еще получаю:

не содержит определения для «различного» * ​​1004 *

с этим кодом:

using System.Collections.Generic;

       //.. . . . . code


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

Ответы [ 4 ]

35 голосов
/ 16 июля 2009

Вы

using System.Linq;

Distinct - это метод расширения, определенный в System.Linq.Enumerable, поэтому вам нужно добавить его с помощью оператора.

И не забудьте добавить ссылку на System.Core.dll (если вы используете VS2008, это уже сделано для вас).

6 голосов
/ 16 июля 2009

Вы забыли добавить

using System.Linq;

Distinct - это метод расширения , определенный в System.Linq.Enumerable, поэтому его можно вызывать только при импорте этого пространства имен.

Вам также необходимо добавить ссылку на System.Core.dll.
Если вы создали проект как проект .Net 3.5, на него уже будет ссылка; если вы обновили его с .Net 2 или 3, вам придется добавить ссылку самостоятельно.

0 голосов
/ 17 мая 2017

Из блога MSDN: Чарли Калверт Ссылка на блог MSDN

Для использования на .net fiddle : - тип проекта: Консоль

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
0 голосов
/ 09 декабря 2010
 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 . . .
 }
...