こんにちは。
これが私がやりたいことです:
str2 = "91";
str1 = "19";
var testQuery = from c1 in str1
from c2 in str2
select new {c1, c2};
foreach (var enumerable in testQuery)
{
Console.WriteLine(enumerable.c1 + " | " + enumerable.c2);
}
私が欲しいもの:
9 | 1
1 | 9
私が本当に得たもの:
1 | 9
1 | 1
9 | 9
9 | 1
コードは純粋な例です。配列またはその他のコレクションを反復処理する場合があります。それは他のいくつかのこともしますが、それらはこの問題とは無関係です。
linqがなければ、次のようなことができます。
for (int i = 0; i < str1.Length -1; i++)
{
Console.WriteLine(str1[i] + " | " + str2[i]);
}
しかし、代わりに必要なすべてを実行できるクエリが必要です。
本当に必要なものを作成するためにyieldを使用する独自の列挙子メソッドを作成する必要がありますか?
編集:リクエストごと:私ができるようにしたいことの例:
str1 = "91";
str2 = "19";
char[] digitX = str1.ToString().Reverse().ToArray();
char[] digitY = str2.ToString().Reverse().ToArray();
var q = digitX.Select((c1, i) => new {c1 = c1 - '0', c2 = digitY[i] - '0' });
実際のクエリで逆などを引き出したいのですが。だから私はそれをすべて集めておきます。追加:SQLのようなシュガーコート構文でこれを引き出すことができるので、私はわくわくします。メソッドチェーンの代わりに、つまり。