В чем смысл поиска < TKey, TElement & gt ;?

У CSS нет обработчика событий onlclick. Вы должны использовать Javascript.

См. Дополнительную информацию здесь о CSS-псевдоклассах: http://www.w3schools.com/css/css_pseudo_classes.asp

a:link {color:#FF0000;}    /* unvisited link - link is untouched */
a:visited {color:#00FF00;} /* visited link - user has already been to this page */
a:hover {color:#FF00FF;}   /* mouse over link - user is hovering over the link with the mouse or has selected it with the keyboard */
a:active {color:#0000FF;}  /* selected link - the user has clicked the link and the browser is loading the new page */

141
задан Gennady Vanin Геннадий Ванин 31 March 2013 в 14:40
поделиться

4 ответа

Это нечто среднее между IGrouping и словарь. Он позволяет вам группировать элементы вместе по ключу, но затем получать к ним доступ с помощью этого ключа эффективным способом (а не просто перебирать их все, что позволяет делать GroupBy ).

Например, , вы можете взять нагрузку типов .NET и построить поиск по пространству имен ... затем очень легко добраться до всех типов в конкретном пространстве имен:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml;

public class Test
{
    static void Main()
    {
        // Just types covering some different assemblies
        Type[] sampleTypes = new[] { typeof(List<>), typeof(string), 
                                     typeof(Enumerable), typeof(XmlReader) };

        // All the types in those assemblies
        IEnumerable<Type> allTypes = sampleTypes.Select(t => t.Assembly)
                                               .SelectMany(a => a.GetTypes());

        // Grouped by namespace, but indexable
        ILookup<string, Type> lookup = allTypes.ToLookup(t => t.Namespace);

        foreach (Type type in lookup["System"])
        {
            Console.WriteLine("{0}: {1}", 
                              type.FullName, type.Assembly.GetName().Name);
        }
    }
}

(обычно я бы использовал var для большинства этих объявлений в обычном коде.)

207
ответ дан 23 November 2019 в 22:52
поделиться

Можно подумать об этом так: Lookup аналогичен Dictionary > . По сути, список из нуля или более элементов может быть возвращен с помощью одного и того же ключа.

namespace LookupSample
{
    using System;
    using System.Collections.Generic;
    using System.Linq;

    class Program
    {
        static void Main(string[] args)
        {
            List<string> names = new List<string>();
            names.Add("Smith");
            names.Add("Stevenson");
            names.Add("Jones");

            ILookup<char, string> namesByInitial = names.ToLookup((n) => n[0]);

            // count the names
            Console.WriteLine("J's: {0}", namesByInitial['J'].Count()); // 1
            Console.WriteLine("S's: {0}", namesByInitial['S'].Count()); // 2
            Console.WriteLine("Z's: {0}", namesByInitial['Z'].Count()); // 0, does not throw
        }
    }
}
56
ответ дан 23 November 2019 в 22:52
поделиться

Думаю, вы могли бы аргументировать это так: представьте, что вы создаете структуру данных для хранения содержимого телефонной книги. Вы хотите ввести по lastName, а затем по firstName. Использование словаря здесь было бы опасно, потому что у многих людей может быть одно и то же имя. Таким образом, словарь всегда будет соответствовать одному значению.

Поиск будет отображать потенциально несколько значений.

Поиск ["Смит"] ["Джон"] будет коллекцией размером один миллиард.

5
ответ дан 23 November 2019 в 22:52
поделиться

Я не использовал его раньше, но вот моя попытка:

A Lookup будет вести себя примерно как (реляционный) индекс базы данных для таблицы без уникального ограничения. Используйте его там же, где и другой.

14
ответ дан 23 November 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: