Страницы

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

воскресенье, 15 марта 2020 г.

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

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

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

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