Это действительно зависит от Ваших запросов. Например, если Вы почти только пишете в таблицу тогда, лучше не иметь любые индексы, они просто замедляют записи и никогда не привыкают. Любой столбец, который Вы используете для присоединения к другой таблице, является хорошим кандидатом на индекс.
кроме того, читайте о функции Missing Indexes. Это контролирует фактические запросы, используемые против Вашей базы данных, и может сказать Вам, какие индексы улучшили бы производительность.
Синтаксис выражения запроса C # не включает "отдельный". Однако у VB есть - например, из документации MSDN для предложения VB Distinct :
// VB
Dim customerOrders = From cust In customers, ord In orders _
Where cust.CustomerID = ord.CustomerID _
Select cust.CompanyName, ord.OrderDate _
Distinct
Эквивалент C # должен явно вызывать Distinct ()
в точечной нотации.
Однако ваш пример все же можно упростить:
string[] colors = {"red","green","blue","red","green","blue"};
var distinctColors = colors.Distinct();
distinctColors.Dump();
Не думаю, что у вас есть , чтобы использовать выражения запроса для использования LINQ :)
Насколько мне известно, в C # нет четкого синтаксиса встроенных запросов. Это максимально приближенно:
var distinctColors = (from color in colors
select color).Distinct()
Вы можете попробовать это
var dis = from c in colors
group c by c;
foreach (var cVal in dis)
{
string s = cVal.Key;
}
Синтаксис понимания запроса не поддерживает метод Distinct
.
В вашем случае вы можете просто написать colors.Distinct ()
; вы ничего не делаете с выражением запроса.