匿名物件和object的轉換

2022-01-12 10:58:24 字數 1575 閱讀 7960

參考

有時候經常用到需要把乙個匿名物件存入session或list或其他容器中,可是取出來的時候變成object了,不太方便使用。 

下面是一種轉換方式:

[csharp] 

class program  

);  

olist.add(new );  

//使用動態型別  

foreach (dynamic item in olist)  

//做型別轉換  

var obj = changetype(olist[0], new );  

console.writeline(obj.name);  

//直接反射  

console.writeline(olist[0].gettype().getproperty("

name

").getvalue(olist[0]).tostring());  

}  static t changetype(object obj, t t)  

}  view code

/獲取所有員工和賬號列表對應關係。

datatable dtaccoutidlist = bll.getlist(model);

//新增一行空行。

datarow dr = dtaccoutidlist.newrow();

dr["accountname"] = "";

dr["accountid"] = "-2";

dtaccoutidlist.rows.insertat(dr, 0);

dtaccoutidlist.acceptchanges();

this.cmbaccountlist.displaymember = "accountname";

this.cmbaccountlist.valuemember = "[accountid]";

var query3 = dtaccoutidlist.asenumerable().select(s => new ).orderby(o => o.accountname).distinct().tolist();

this.cmbaccountlist.datasource = query3;

將資料來源轉換為匿名物件陣列。

var cmbaccountdatasource = this.cmbaccountlist.datasource.changetype(new }.tolist()); 

或者 this.cceaccount.properties.datasource = accounts.select(m => new ).tolist();

將選擇的項,轉換為匿名物件

var cmbselecteditem = this.cmbaccountlist.selecteditem.changetype(new );

int selectedaccountid=cmbselecteditem.accountid

string selectedaccoutname=cmbselecteditem.accountname

///擴充套件方法

public static class extension

匿名物件和object的轉換

參考 object 或其他容器中,可是取出來的時候變成object了,不太方便使用。下面是一種轉換方式 csharp class program olist.add new 使用動態型別 foreach dynamic item in olist 做型別轉換 var obj changetype o...

匿名物件和object的轉換

有時候經常用到需要把乙個匿名物件存入session或list或其他容器中,可是取出來的時候變成object了,不太方便使用。下面是一種轉換方式 csharp class program olist.add new 使用動態型別 foreach dynamic item in olist 做型別轉換 ...

匿名型別和Object轉換

本文 但是開發中遇到乙個問題,當把匿名型別作為返回值的時候,會變成object型別,如果才能再轉換能對應的匿名型別呢?返回匿名型別的函式,會轉換成object型別 object returnanonymous void main console.writeline typed.city,typed....