IEnumerable<T>
のコピーを作成したいのですが、特定のインデックスにある1つの商品が所定の値に置き換えられました。IEnumerableをコピーして商品を交換してください
public static IEnumerable<T> ReplaceAt<T>(this IEnumerable<T> source, T item, int index)
{
foreach (T before in source.Take(index))
{
yield return before;
}
yield return item;
foreach (T after in source.Skip(index + 1))
{
yield return after;
}
}
しかし、理解することは、おそらく簡単ながら、の1がすでにによって撮影した項目をスキップする2回の反復子を作成するために、「非効率的」と思われる:
は、私が何をしたいんどの次のメソッドを定義し最初のイテレータ。これを定義するより良い方法はありますか?
まあ、公正を。この答えは私よりもイーグルです:) – tym32167
@ tym32167まあ、とにかくあなたの答えをアップアップしました。 ;) –