私は次のような2つの整数変数を持っています
int Max = 10;
int limit = 5;
と辞書
Dictionary<String , String> MyDict = new Dictionary<string,string>();
辞書にMax
要素を入力する必要があります。インデックスが以上の場合limit
、値はnoneである必要があります。
これが私の質問をクリアする私のサンプルコードです
int j = 1;
for (int i = Max-1; i >= 0; i--)
{
if (i >= limit)
MyDict.Add((j++).ToString(), "None");
else
MyDict.Add((j++).ToString(), i.ToString());
}
結果は次のようになります
{ "1" "None" }
{ "2" "None" }
{ "3" "None" }
{ "4" "None" }
{ "5" "None" }
{ "6" "4" }
{ "7" "3" }
{ "8" "2" }
{ "9" "1" }
{ "10" "0" }
LINQ
またはを使用してこれを行う方法LAMBDA Expression
逆はEnumarable
ここを使用して行うことができます
MyDict = Enumerable.Range(0, Max)
.ToDictionary(X => (X + 1).ToString(), X => X >= limit ? "None" : X.ToString());
この式の出力
{ "1" "0" }
{ "2" "1" }
{ "3" "2" }
{ "4" "3" }
{ "5" "4" }
{ "6" "None" }
{ "7" "None" }
{ "8" "None" }
{ "9" "None" }
{ "10" "None" }
しかし、これの逆をどのように行うのですか(for
ループの出力のように)?または、既存のを変更するにはどうすればよいLINQ
ですか?
前もって感謝します。