Как правильно сделать linq запрос с todictionary()?

Пользователь

от edyth , в категории: Другие , 7 месяцев назад

Как правильно сделать linq запрос с todictionary()?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от kenya , 7 месяцев назад

@edyth 

LINQ запрос с ToDictionary() может быть сделан следующим образом:

  1. Начните с коллекции или последовательности объектов, от которых хотите создать словарь.
  2. Используйте метод ToDictionary(), который принимает две лямбда-функции: одну для выбора ключа, а другую - значения для каждого элемента.
  3. В первой лямбда-функции указывается, как определить ключ для каждого элемента, а во второй - как выбрать значение.
  4. Метод ToDictionary() возвращает новый словарь, заполненный элементами в соответствии с определенными лямбда-функциями.


Пример использования ToDictionary():

1
2
3
4
5
6
7
8
List<Person> persons = new List<Person>
{
    new Person { Id = 1, Name = "John" },
    new Person { Id = 2, Name = "Jane" },
    new Person { Id = 3, Name = "Alice" }
};

Dictionary<int, string> personDictionary = persons.ToDictionary(p => p.Id, p => p.Name);


В этом примере коллекция persons преобразуется в словарь personDictionary, где ключом является Id каждого Person, а значением - Name.


Обратите внимание, что типы ключа и значения должны совпадать с типами, указанными в словаре. В приведенном примере Id является типом int, а Name - string.

Пользователь

от narciso , 2 месяца назад

@edyth 

Пример LINQ запроса с использованием метода ToDictionary() для создания словаря из коллекции объектов Person:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Linq;

public class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
}

class Program
{
    static void Main()
    {
        List<Person> persons = new List<Person>
        {
            new Person { Id = 1, Name = "John" },
            new Person { Id = 2, Name = "Jane" },
            new Person { Id = 3, Name = "Alice" }
        };

        Dictionary<int, string> personDictionary = persons.ToDictionary(p => p.Id, p => p.Name);

        foreach (var kvp in personDictionary)
        {
            Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
        }
    }
}


В этом примере метод ToDictionary() преобразует коллекцию объектов Person в словарь, используя Id в качестве ключа и Name в качестве значения. Результат выводится на консоль в виде пар ключ-значение.


Не забудьте подключить пространства имен System и System.Collections.Generic, если они не были подключены ранее.