質問

私は構造体の ArrayList を使用することが多いです。foreach を使用してリストを循環するのは非常に簡単です。

私が抱えている問題は、構造体の内容を変更するために foreach を使用できず、for と厄介なタイプキャストを使用する必要があることです。

((dataStructure)files[x]).name = here;

もっときちんとした方法はありますか?

役に立ちましたか?

解決

単純に聞こえるかもしれませんが、 変更可能な値の型にはノーと言うだけです.

彼らはほぼ 一度もない 問題の正しい解決策。あります とても いくつかの例外がありますが、クラスはほとんど いつも 進むべき道。

さらに、実際に使用している場合は、 ArrayList そうなると、すでに開梱費用が発生してしまいます...(Konrad 氏が言うように、.NET 2.0 を使用できるのであれば、ジェネリックスを使用してください。)

どうしても変更可能な構造を使用したい場合は、 for 代わりにループします foreach. 。でも、とにかく授業に変えてください。

他のヒント

はい、あります。これらのタイプはArrayListにおけるジェネリック型の賛成で廃止され、型なしSystem.Collections.Genericを使用しないでください。あなたの場合: List<T>する

あなたはまだ構造体の値を変更するためにforeachループと一緒にそれを使用することはできませんが、少なくとも、あなたはキャストする必要はありません。

一般的なArrayListのバージョンを使用します。List<DataStructure>

この方法では、物事はかなり良く見てます:

files[x].name = here;

はい、List <T>も有用ではない場合があります。これらのケースでは手作業で最古のトリック。代わりにforeachの、あなたはwhileループを使用する必要があります:

while (listItem.Count >0)
{
//do operation with 0th element of List Item always like
 deletefunc(lisItem[0]);
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top