日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

匿名对象和object的转换

發(fā)布時間:2025/7/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 匿名对象和object的转换 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

參考http://www.2cto.com/kf/201207/139227.html

有時候經(jīng)常用到需要把一個匿名對象存入session或List<object>或其他容器中,可是取出來的時候變成object了,不太方便使用。?
下面是一種轉(zhuǎn)換方式:
?
[csharp]?
?
????class?Program??
?
????{??
?
????????static?void?Main(string[]?args)??
?
????????{??
?
????????????List<object>?olist?=?new?List<object>();??
?
????????????olist.Add(new?{?Name?=?"Hauk",?Age?=?22?});??
?
????????????olist.Add(new?{?Name?=?"Emily",?Age?=?22?});??
?
??
?
??
?
????????????//使用動態(tài)類型??
?
????????????foreach?(dynamic?item?in?olist)??
?
????????????{??
?
????????????????Console.WriteLine(item.Name);??
?
????????????}??
?
??
?
??
?
????????????//做類型轉(zhuǎn)換??
?
????????????var?obj?=?ChangeType(olist[0],?new?{?Name?=?"",?Age?=?0?});??
?
????????????Console.WriteLine(obj.Name);??
?
??
?
??
?
????????????//直接反射??
?
????????????Console.WriteLine(olist[0].GetType().GetProperty("Name").GetValue(olist[0]).ToString());??
?
????????}??
?
??
?
??
?
????????static?T?ChangeType<T>(object?obj,?T?t)??
?
????????{??
?
????????????return?(T)obj;??
?
????????}??
?
????}??View Code

?

???????????? /獲取所有員工和賬號列表對應(yīng)關(guān)系。
??????????? 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 { AccountID = s["AccountID"].ToInt(), AccountName = s["AccountName"].ToString() }).OrderBy(o => o.AccountName).Distinct().ToList();
??????????????? this.cmbAccountList.DataSource = query3;

?

--

將數(shù)據(jù)源轉(zhuǎn)換為匿名對象數(shù)組。

var cmbAccountDataSource = this.cmbAccountList.DataSource.ChangeType(new[] { new { AccountID = 0, AccountName = "" } }.ToList());?

或者?this.cceAccount.Properties.DataSource = accounts.Select(m => new { Account = m }).ToList();

將選擇的項,轉(zhuǎn)換為匿名對象

var cmbSelectedItem = this.cmbAccountList.SelectedItem.ChangeType(new { AccountID = 0, AccountName = "" });

int selectedAccountID=cmbSelectedItem.AccountID

string selectedAccoutName=cmbSelectedItem.AccountName

?

///擴展方法

?public static class Extension
?{

????

?public static T ChangeType<T>(this object obj, T t)
??????? {
??????????? return (T)obj;
??????? }

}

《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

總結(jié)

以上是生活随笔為你收集整理的匿名对象和object的转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。