1. ホーム
  2. c#

[解決済み] IList に項目の範囲を追加するには?

2023-03-24 23:53:07

質問

この質問には AddRange() メソッドはありません。 IList<T> .

どのようにしたら、項目のリストを IList<T> に追加するにはどうしたらよいでしょうか。 Add() メソッドを使用せずに?

どのように解決するのですか?

AddRangeList<T> で定義され、インターフェースではありません。

として変数を宣言することができます。 List<T> の代わりに IList<T> にキャストするか List<T> にアクセスするために AddRange .

((List<myType>)myIList).AddRange(anotherList);

これは良い習慣ではありません(以下のコメントを参照)。 IList<T> ではなく である List<T> ではなく、インターフェイスを実装した他の型であるため、そのような型には AddRange メソッドを持たないかもしれません。そのような場合、コードが実行時に例外をスローしたときにのみ知ることができます。

ですから、その型が本当に List<T> であることが確実でない限り AddRange .

一つの方法として、型をテストするために または として 演算子として使用できます (C# 7 以降)。

if(myIList is List<T>)
{
   // can cast and AddRange
}
else
{
   // iterate with Add
}