ASP .NET with C#を初めて使用する場合、1つの問題の解決策が必要です
PHP私はこのような配列を作成できます
$arr[] = array('product_id' => 12, 'process_id' => 23, 'note' => 'This is Note');
//Example
Array
(
[0] => Array
(
[product_id] => 12
[process_id] => 23
[note] => This is Note
)
[1] => Array
(
[product_id] => 5
[process_id] => 19
[note] => Hello
)
[2] => Array
(
[product_id] => 8
[process_id] => 17
[note] => How to Solve this Issue
)
)
ASP .NET with C#で同じ配列構造を作成したい。
この問題の解決を手伝ってください。前もって感謝します。
使う Dictionary<TKey, TValue>
は、キー(文字列)に基づいて値(オブジェクト)をすばやく検索します。
var dictionary = new Dictionary<string, object>();
dictionary.Add("product_id", 12);
// etc.
object productId = dictionary["product_id"];
Add
操作を簡略化するには、次のようなコレクション初期化構文を使用できます。
var dictionary = new Dictionary<string, int> { { "product_id", 12 }, { "process_id", 23 }, /* etc */ };
編集
あなたの更新で、私は先に進み、あなたのデータをカプセル化するための適切なタイプを定義します
class Foo
{
public int ProductId { get; set; }
public int ProcessId { get; set; }
public string Note { get; set; }
}
次に、そのタイプの配列またはリストを作成します。
var list = new List<Foo>
{
new Foo { ProductId = 1, ProcessId = 2, Note = "Hello" },
new Foo { ProductId = 3, ProcessId = 4, Note = "World" },
/* etc */
};
そして、繰り返し処理したり、コントロールにバインドしたりできる、強く型付けされたオブジェクトのリストがあります。
var firstFoo = list[0];
someLabel.Text = firstFoo.ProductId.ToString();
anotherLabel.Text = firstFoo.Note;
string
からobject
へのマッピングを探している場合:
Dictionary<string, object> map = new Dictionary<string, object> {
{ "product_id", 12 },
{ "process_id", 23 },
{ "note", "This is Note" }
};
あるいは、これが単にデータを渡す方法である場合は、おそらく匿名クラスが必要です。
var values = new {
ProductId = 12,
ProcessId = 23,
Note = "This is Note"
};
それは本当にあなたが達成しようとしていること、つまり全体像に依存します。
編集:複数の値に同じ「キー」がある場合、おそらくこれに特定のタイプを作成します-これが表すエンティティの種類は明確ではありませんが、それをモデル化するクラスを作成する必要があります。必要に応じて適切な動作を追加します。
これを試して
System.Collections.Generic.Dictionary<string, object>[] map = new System.Collections.Generic.Dictionary<string, object>[10];
map[0] = new System.Collections.Generic.Dictionary<string,object>();
map[0].Add("product_id", 12);
map[0].Add("process_id", 23);
map[0].Add("note", "This is Note");
map[1] = new System.Collections.Generic.Dictionary<string,object>();
map[1].Add("product_id", 5);
map[1].Add("process_id", 19);
map[1].Add("note", "Hello");
連想配列は、辞書を使用してC#で表すことができます。そのEnumerator.CurrentはkeyValuePairを返します。
だからあなたの配列は
var associativeArray = new Dictionary<string, string>(){ {"product_id", "12"}, {"process_id"," 23", {"note","This is Note"}};