List<string>
に同じ文字列値を指定した回数入力したいとします。ストレートのC#でLUMQで同じ値の<string>を取り込み
は、それは次のようになります。
List<string> myList = new List<string>();
for (int i = 0; i < 50; ++i)
{
myList.Add("myString");
}
それはLINQでこれを行うことは可能ですか?
List<string>
に同じ文字列値を指定した回数入力したいとします。ストレートのC#でLUMQで同じ値の<string>を取り込み
は、それは次のようになります。
List<string> myList = new List<string>();
for (int i = 0; i < 50; ++i)
{
myList.Add("myString");
}
それはLINQでこれを行うことは可能ですか?
はい、Enumerable.Repeatを使用します。
var myList = Enumerable.Repeat("myString", 50).ToList();
またはこの:
var myList = new List<string>(Enumerable.Repeat("myString", 50));
既存のリストを持っている場合あなたがそれらの要素を追加したい、この使用:
myList.AddRange(Enumerable.Repeat("myString", 50));
をこれは正確にはLINQ自体ではありませんが、LINQと一緒に追加された拡張メソッドを使用していることに注意してください新しい構文を実行してください。 だけ LINQ(。すなわち "から...を選択し、" 構文)、それは少し違うのは、私はこれを行うだろうと:
var myList = (from idx in Enumerable.Range(0, 50) select "myString").ToList();
しかし、私は実際にはこれをしないなり、I代わりにEnumerable
のメソッドを使用します。また
、あなたはそれはあなたが追加している項目、第三、第1、第2、第などであるかどうかに応じて、異なる文字列を作成したい場合は、代わりにEnumerable.Rangeを使用することができます。
var myList = Enumerable.Range(0, 50).Select(idx => "myString#" + idx).ToList();
ウィル、myString#2
、文字列myString#0
、myString#1
でリストを作成...
仕事に最適なツールがEnumerable.Repeat
です:
var myList = Enumerable.Repeat("myString", 50).ToList();
これを試してみてください:
Enumerable.Range(0, 50).Select(i => "myString").ToList()
var myList = Enumerable.Repeat("myString", 50).ToList();
http://stackoverflow.com/questions/9361598/populate-a-list-with-a-specific-range-of-numbers-by-using-linq – sarwar026