5

読み取りたい dbf ファイル (dBase) があり、各行を 1 つのリストに入れ (行は 1 つのシェープファイル オブジェクトに関するデータを表すため)、リストを変更できます (たとえば、名前を表すフィールドを変換します)。文字列に)。これは、データ型が Int、文字列、bool などの両方を保持し、項目を追加できる必要があることを意味します。Python ではリストを使ってこれを行うことができましたが、セットは変更できないため、使用できません。

これは、 Alternative to Tuplesの (正確な) 複製のように聞こえますが、そうではありません。これらの質問は、必要なオブジェクトを事前に知っているという前提に基づいています。私はしません。

私は.NET 4.5を使用しています。

4

3 に答える 3

3

使用dynamic- それは完璧な使用例です:

Visual C# 2010 では、新しい型 dynamic が導入されています。型は静的型ですが、動的型のオブジェクトは静的型チェックをバイパスします。ほとんどの場合、オブジェクト型を持つように機能します。コンパイル時に、動的として型指定された要素は、すべての操作をサポートすると見なされます。したがって、オブジェクトがその値を COM API から取得するか、IronPython などの動的言語から取得するか、HTML ドキュメント オブジェクト モデル (DOM) から取得するか、リフレクションから取得するか、またはプログラム内の他の場所から取得するかを気にする必要はありません。ただし、コードが有効でない場合は、実行時にエラーがキャッチされます。

于 2013-06-22T20:36:03.423 に答える
2

実行時にプロパティを簡単に追加してそのタイプを変更できるようにしたい場合は、ExpandoObjectwithを使用できますdynamic。次に例を示します。

dynamic expando = new ExpandoObject();

expando.SomeProperty = "1234";

Console.WriteLine(expando.SomeProperty);
Console.WriteLine(expando.SomeProperty.GetType().FullName); // string

expando.SomeProperty = int.Parse(expando.SomeProperty);

Console.WriteLine(expando.SomeProperty);
Console.WriteLine(expando.SomeProperty.GetType().FullName); // int
于 2013-06-22T20:54:16.873 に答える
1

dynamicタイプを使ってみましたか?

于 2013-06-22T20:35:09.560 に答える