0
スコアを計算する方法が1つあります。単純化:Linq one複数リストの結果
public static int GetScore(int v1, int v2, char v3)
{
//calculate score
return score;
}
v1
、v2
とv3
3つのリストから3つの値されています
List<int> Values1 = new List<int>();
List<int> Values2 = new List<int>();
List<char> Values3 = new List<char>();
//fill Values1, Values 2, Values3
はどのように3つのリストのそれぞれの組み合わせを決定し、最高のスコアを決定するためにSelect
でなければなりませんか?私は、LINQクエリの構文はより明確だと思います。この場合
int MaxScore = Values1.Select(x => Values2.Select(y => GetScore(x, y))).Max(); // ???
私の現在のアプローチ
int MaxScore = 0;
foreach (int x in Values1)
{
foreach (int y in Values2)
{
foreach (char z in Values3)
{
int Score = GetScore(x, y, z);
if (Score > MaxScore)
{
MaxScore = Score;
}
}
}
}
あなたは同じインデックスによって測定しようとしていますか?すべての3つのリストの中で最も高い得点を測定しますか? あなたのケースを詳細に記入してください – shirbr510
あなたが必要とするのは、リスト内のすべての値の組み合わせである列挙型を生成するメソッドです。単純な 'Select'の後に' Max'を続けてください。その方法を書いてください - アルゴリズムを理解してください(ヒント:ネストされたループはうまくいくかもしれません)。 – Luaan
'MaxScore = Values1.SelectMany(x => Values2.SelectMany(y => Values3.Select(z => GetScore(x、y、z)))))Max();'を試してください。 – Enigmativity