Есть ли в 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));
}
}
Комментариев нет:
Отправить комментарий