Страницы

Поиск по вопросам

среда, 5 июня 2019 г.

Пропуск повторов элементов последовательности

Есть ли в 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


Ответ

Просто вызвать 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)); } }

Комментариев нет:

Отправить комментарий