私はリストのリストを持っています。 これらのリストのそれぞれでいくつかのOpertationsを実行するには、リストでプロパティを区切り、その値で一時リストを設定します。 リストが空であることがあります。 私はこの機能を割り当てに使用しています。c#別のリスト/新しいリストでリストを初期化する
編集: 私の現在の解決方法はこの簡単な方法です。 これは簡単に適応できるはずです。
private List<string> setList(List<string> a, int count)
{
List <string> retr;
if(a.Capacity == 0)
{
retr = new List<string>();
for(int counter = 0; counter < count; counter++)
{
retr.Add(string.empty);
}
}
else
{
retr = a;
}
return retr;
}
リストを値として取るか、要素数のリストを初期化する方が良いでしょうか? この動作を持つ独自の "List"クラスを実装する必要がありますか?
var list = Enumerable.Repeat<string>("", count).ToList();
しかし、あなたのコードに問題があるいくつかの事柄があります:あなたはループを避けるために望んでいた場合は、Enumerable.Repeat<T>
を使用することができ
'List.Capacity'は' List.Count'と同じではなく、リストをクリアするとトリミングされません。この方法のポイントは何ですか?前のリストも空の場合、新しいリストをインスタンス化しないのはなぜですか?また、あなたのコードには "リストのリスト"もありません。 – Groo
私は容量がカウントと同じではないことを知っています。初期化では、サブリストにいくつの要素が含まれているか気にしませんが、どれくらいの数が存在するかはわかりません。 – gismo
最初に実行する必要性を排除する以外に、これは非常に直感的ではないことを客観的に行う良い方法はありません。それでも、「良い方法がある」ということは、コードレビューのために働くコードの種類がより重要であるということです。 –