0

arraylist から要素を逆シリアル化する次のコードがあります。逆シリアル化するときに、DeserializeObject メソッドが arraylist からも要素を削除するかどうかわかりません。各シリアル化の後に recvJsonBuffer.RemoveAt(0) を追加する必要がありますか?

                    List<Json> entities = (List<Json>)JavaScriptConvert.DeserializeObject(recvJsonBuffer[0].ToString(), typeof(List<Json>));

                    foreach (Json obj in entities)
                    {
                        trace_idBuffer = obj.traceid;
                        plain_tagidBuffer = obj.Plain_tagID;
                        national_codeBuffer = obj.National_Code;
                        country_codeBuffer = obj.Country_Code;
                        res_codeBuffer = obj.Res_Code;
                        exp_codeBuffer = obj.Exp_Code;
                        reader_idBuffer = obj.Device;
                        data_sourceBuffer = obj.Datasource;
                        //  recvJsonBuffer.RemoveAt(0);
                    }
4

1 に答える 1

0

そうすべきではありませんし、もしDeserializeObjectそうなら.... デザイナーに非常に腹を立てます。

列挙可能なものを反復することは、それを操作することではなく、それだけである必要があります。

コードのように要素を削除することRemoveAtも悪い考えです。

作業中のリスト/配列からアイテムを削除します。これは、座っているツリーから枝を切り取るようなものです...

なぜそれを削除するのですか?使用しなくなった場合は、GC に削除させてください。それを削除してもプロセスはスピードアップしませんが、すべてを開いたままにして足を撃ちます(falling_off_the_branch-thingを生き延びた場合)

于 2013-01-28T03:25:13.720 に答える