У меня есть куча общих классов, которые все выглядят следующим образом:LINQ матч два списка внутри оператора выбора
public class MyList<T0, T1, T2>
{
public T0 Column0;
public T1 Column1;
public T2 Column2;
}
... и я их использования в двух списках, TempResults (Column0-Column15)
и Disagio (Column0-Column3)
. Теперь я хочу создать новый список, содержащий 3 столбца из TempResults и один из Disagio, где мне нужно сопоставить Disagio.Column1
с TempResults.Column13
, а затем вернуть Disagio.Column2
(всегда будет 0 или 1 совпадение). Весь код:
EndResults = TempResults
.Select(sel => new MyList<string, string, string, string>
{
Column0 = sel.Column0,
Column1 = //ugly part goes here, see below
Column2 = sel.Column1,
Column3 = sel.Column12
})
.DistinctBy(x => x.Column0)
.ToList();
То, что я пытался до сих пор:
//Returns an empty list
Disagio.Where(x => x.Column1 == sel.Column13).First().Column2.ToString()
//It returns something, but I doubt it's correct
Disagio.Join(TempResults, x => x.Column1, y => y.Column13, (a, b) => a).First().Column2.ToString()
я мог бы решить эту проблему с помощью цикла, но я действительно не хочу. Списки никогда не будут слишком длинными, память и скорость менее важны, чем читаемость в этом случае.
'Disagio' список этих объектов' Disagio'? – Kolky
Disagio выглядит так: 'List> Disagio' –