@edyth
LINQ запрос с 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
.
@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, если они не были подключены ранее.