Я пытаюсь использовать LINQ для создания нового словаря из существующего, удаляя дубликаты в процессе.
Существующий словарь выглядит следующим образом:
Dictionary<LoaderConfig, List<ColumnInfo>> InvalidColumns = new Dictionary<LoaderConfig, List<ColumnInfo>>();
public struct LoaderConfig
{
public string ObjectName { get; set; }
public DateTime? LoadDate { get; set; }
public string Load { get; set; }
public string TableName { get; set; }
}
public struct ColumnInfo
{
public string ColumnName { get; set; }
public string DataType { get; set; }
public int DataLength { get; set; }
}
В итоге я хочу получить Dictionary<string, List<ColumnInfo>>
, где ключ - это атрибут TableName объектов LoaderConfig, а список объектов ColumnInfo уникален для каждого TableName.
Я начал с этого, основываясь на другом посте, который нашел:
var alterations = InvalidColumns
.GroupBy(pair => pair.Key.TableName)
.Select(group => group.First())
.ToDictionary(pair => pair.Key.TableName, pair => pair.Value);
Который не работает из-за First (). Я думаю, что есть способ добиться этого с помощью расширений LINQ, мне просто нужна помощь, чтобы найти его.
Спасибо!