用c#在asp.net中实现数组键值
本文关键字:实现 数组 键值 net asp | 更新日期: 2023-09-27 18:13:06
我是c#的asp.net新手。现在我需要解决一个问题。
在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
)
)
我想用c#在asp.net中创建相同的数组结构。
请帮我解决这个问题
使用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#中使用Dictionary表示。其枚举器。Current将返回一个keyValuePair。
那么你的数组应该是
var associativeArray = new Dictionary<string, string>(){ {"product_id", "12"}, {"process_id"," 23", {"note","This is Note"}};