次のコードを検討してください。
private ISet<int> CalcSumsOfTwoNums(IEnumerable<int> nums) {
ISet<int> iset = new HashSet<int>();
var asArray = nums.ToArray();
for (var i = 0; i < asArray.Length - 2; i++) {
for (var j = i; j < asArray.Length - 1; j++) {
var sum = asArray[i] + asArray[j];
if (sum <= MAX) {
iset.Add(sum);
}
}
}
return iset;
}
for
ネストされたループ構文をLINQ式またはLINQドット表記に変換することは意味がありますか?for
これは、ループ構文がより適切な状況の1つですか?私の傾向はfor
、結果のセットに到達するために配列を通過するときに配列のインデックス位置に依存しているため、ここではループが優れていると言うことです。