Я рефакторинг этого кода и пытался придумать простое выражение linq для заполнения этого словаря.
IEnumerable<IHeaderRecord> headers = PopulateHeaders();
var headerLocationLookup = new Dictionary<string, IHeaderRecord>();
foreach (var header in headers)
{
//destination locations can repeat, if they do, dictionary should only contain the first header associated with a particular location
if (!headerLocationLookup.ContainsKey(header.DestinationLocation))
{
headerLocationLookup[header.DestinationLocation] = header;
}
}
Я мог только придумать реализацию собственного IEqualityComparer и использовать его в выражении, таком как этот ...
headers.Distinct(new CustomComparer()).ToDictionary();
Есть ли способ сделать все это встроенным без пользовательского IEqualityComparer? Заранее спасибо.