#c_sharp #net #linq
Есть ли в LINQ предложение или метод, который бы не выводил повторы элементов последовательности. Например, для последовательности 1, 2, 1, 3, 1, 4, 1, 5, 1, 6 предложение или метод должен определить, что 1 повторяется несколько раз, и выбрать его один раз. Main.cs: using System; //добавить ссылку using System.Linq; class Program { public static int Main() { //источник данных int[] ara = new int[] { 1, 2, 1, 3, 1, 4, 1, 5, 1, 6 }; //создание запроса var query = from val in ara //??? select val; //выполнение запроса foreach (var i in ara) { Console.Write("{0} ", i); } Console.WriteLine(); Console.ReadKey(); return 0; } } Результат должен быть таким: 1 2 3 4 5 6.
Ответы
Ответ 1
Просто вызвать Distinct(). Ну или извратиться с группировкой :D http://ideone.com/9xN5RX using System; using System.Linq; public class Test { public static void Main() { int[] a = new int[] {1, 2, 1, 3, 1, 4, 1, 5, 1, 6}; var b = from x in a group x by x into t select t.Key; var c = a.Distinct(); Console.WriteLine(String.Join(" ", b)); Console.WriteLine(String.Join(" ", c)); } }
Комментариев нет:
Отправить комментарий