数値の配列のリストがあります。検索番号がインデックス 0 に位置する数値の間にある 2 つの配列を検索しています。次に、2 番目の配列からインデックス 1 に位置する数値を返します。(インデックス 0 の数字は既にソートされており、重複はないと仮定します)
LINQPad の私の間違った解決策:
2 番目と 3 番目の配列で 9 が 4 と 10 の間にあるため、「found」の値は 3 である必要があります。次に、2 番目に見つかった配列を取得し、その配列のインデックス 1 にある 3 を返します。
List<int[]> list = new List<int[]> { new[] { 1, 5 }, new[] { 4, 6 }, new[] { 10, 3} , new[] { 15, 8} };
int searchFor = 9;
int found = list.Where(n => searchFor >= n[0] && searchFor <= n[0]).Select(i => i[1]).FirstOrDefault();
found.Dump(); //should be 3 instead of 0.