0

この構文を使用して C# で取得したのと同じ結果を達成したいのですが、VB.NET では次のようになります。

// This is my generic object (coming from Json parsing!):
var genericContent = new { Name = "name1", Value = 0 };

// I would like to have a generic list, created by this generic item:
var myList = (new[] { genericContent }).ToList();

// So, I can add any other generic items (with the same structure)...
myList.Add(new { Name = "name2", Value = 1 });

// And treat them as a normal list, without declaring the class!
return myList.Count;

...だから、VBでジェネリック配列を作成したいだけです。

C# では問題なく動作しますが、この VB.NET の構文がわかりません...

.NET Framework 3.5 を使用しています。

ありがとうございました!

4

2 に答える 2

3

ここでは問題ありません:

Dim genericContent = new with { .Name = "name1", .Value = 0 }
Dim myList = {genericContent}.ToList()
myList.Add(new with { .Name = "name2", .Value = 1 })

少なくとも .Net 4.0 (VB.Net 10.0) では。

以前のバージョンの場合: いいえ、ヘルパー メソッドなしでは不可能です。

于 2012-08-22T11:56:09.273 に答える
0

そのフレームワークでは、C# のようにコンパクトな構文はないと思います...

この方法を使ってみてください...

次のようなメソッドを宣言します (共有の方が良いと思います):

Public Shared Function GetArray(Of T)(ByVal ParamArray values() As T) As T()
    Return values
End Function

したがって、ジェネリック パラメータを渡す配列を作成できます。LINQ を使用すると、ジェネリック リストを簡単に作成できます。

Dim genericContent = New With { Name = "name1", Value = 0 }

Dim myList = (GetArray(genericContent)).ToList()

myList.Add(New With { Name = "name2", Value = 1 })

return myList.Count
于 2012-08-22T11:58:11.590 に答える