我有一个List<object>
的代码部分:
List<object> Result= new List<object>();
Some sql connection code...
SqlCommand com = new SqlCommand(@" Select TOP(10) a,b,c from table
一些sql连接代码......
while (rd.Read())
{
Result.Add(new
{
a=rd[0],
b=rd[1],
c=rd[2]
});
}
rd.Close();
con.Close();
我想为Result
值添加一些声明。例如
if(a == "")
a=5;
我在javascript部分使用List<object>
var listCategory = $find("ace2").get_completionList();
var count2 = listCategory .childNodes.length;
for (j =0; j < count2; j++) {
var item2 = listCategory .childNodes[j]._value;
var a= item2.a;
var b= item2.b;
var c= item2.c;
}
我在html中使用此值。
如何为List<object>()
值添加一些声明?
答案 0 :(得分:1)
不知道你要返回多少列?如果你知道创建一个持有者类别,你必须自己处理,并且不太可维护。
List<KnownType> Result= new List<KnownType>();
a=rd[0];
b=rd[1],
c=rd[2]
if(a=="" or string.IsNullOrEmpty(a) or YourCondition)
{
change what ever values you want
}
Result.Add(new KnownType
{
a,b,c
});
答案 1 :(得分:0)
如果我理解你想要对运行时类型进行条件初始化,之前将它添加到列表中。
所以你可以创建一个函数:
public object GetObject(SqlDataReader rd) {
var aVal = rd[0];
if(string.IsNullOrEmpty(aVal))
aVal = "5"; //STRING, in your case it's a NUMBER
return new
{
a=aVal,
b=rd[1],
c=rd[2]
});
}
并在使用后添加:
while (rd.Read())
{
....
Result.Add(GetObject(rd));
.....
}
如果这不是您所要求的,请澄清。