Есть список вида
List<Person> people = new List<Person>();
people.Add(new Person() { Name = "Том", Id = "Id_1" });
people.Add(new Person() { Name = "Том", Id = "Id_2" });
people.Add(new Person() { Name = "Ипполит", Id = "Id_3" });
people.Add(new Person() { Name = "Евкакий", Id = "Id_4" });
people.Add(new Person() { Name = "Евкакий", Id = "Id_5" });
То есть имена могут повторяться, а Id - нет.
Хочу создать словарь типа Dictionary<string, List<string>>
, чтобы у ключа был список из Id-шников. Как это можно сделать?
То есть Том:[Id_1, Id_2], Ипполит:[Id_3], Евкакий:[Id_4, Id_5]
Пробую вот так, но записывается только первый элемент
foreach (var eee in people)
{
var key = eee.Name;
if (!dictionaryElement.ContainsKey(key))
{
dictionaryElement[key] = new List<Id>();
dictionaryElement[key].Add(eee.Id);
}
}
Заранее спасибо!
if (!dictionaryElement.ContainsKey(key))
dictionaryElement[key] = new List<Id>();
dictionaryElement[key].Add(eee.Id);
Dictionary<string, string> peopleDic1
= people.GroupBy(p => p.Name)
.Select(g => new
{
Name = g.Key,
Ids = people
.Where(p => p.Name == g.Key)
.Aggregate(String.Empty,
(a, n) => a + ", " + n.Id)
})
.ToDictionary(n => n.Name, n => n.Ids.Remove(0, 2));
Dictionary<string, List<string>> peopleDic2
= people.GroupBy(p => p.Name)
.Select(g => new
{
Name = g.Key,
Ids = people
.Where(p => p.Name == g.Key)
.Aggregate(new List<string>(),
(acc, p) => { acc.Add(p.Id); return acc; })
})
.ToDictionary(n => n.Name, n => n.Ids);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Намеренно удаляю базу данных, делаю запрос и обрабатываю ошибки, и остается от БД
Объясните, что в данном примере обозначает параметр <T>, и в чем будет коренная разница от реализации данной ниже?
При запуске команды update-database происходит ошибка:
Есть 3 таблицы (CAT_OBL, CAT_STATION, TOS_MES), 1-я и 2-я связаны между собой по полю OBL_ID, 2-я и 3-я таблицы связанны по полю IND_STНужно вывести данные из 3-й таблицы...