国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

淺談Tuple之C#4.0新特性那些事兒你還記得多少?

2019-11-14 14:19:47
字體:
來源:轉載
供稿:網友

今天給大家分享的內容基于前幾天收到的一條留言信息,留言內容是這樣的:

 

 看了這位網友的留言相信有不少剛接觸開發的童鞋們也會有同樣的困惑,除了用新建類作為橋梁之外還有什么好的辦法?很多童鞋肯定會想到DataSet,不錯,DataSet完全可以實現各種數據集的傳遞,而且還很方便,但是一般我們更推薦使用List集合,那么List集合如何在不確定屬性和類的時候傳遞包含多個字段的集合呢?為一些簡單的結構而新建一個類顯然是不合理的。

一、4.0新特性中的Tuple

大家可以回顧一下c#4.0中增加的一個新特性,元組Tuple,它是一種固定成員的泛型集合:


下面先看看官方的一個使用例子:

創建一個包含7個元素的Tuple數組

// Create a 7-tuple.

var population = new Tuple<string, int, int, int, int, int, int>( "New York", 7891957, 7781984, 7894862, 7071639, 7322564, 8008278);// Display the first and last elements.

Console.WriteLine("Population of {0} in 2000: {1:N0}",population.Item1, population.Item7);

用法非常簡單方便,普通的方式我們可能需要這樣:

public class A{ 

 public int ID{get;set;} 

 public string Name{get;set;}

}

A a=new A(){ID=1001,Name='CodeL'};

Console.WriteLine(a.Name);


而使用Tuple我們只需要這樣:

Tuple<int,string> a=new Tuple<int,string>(1001,'CodeL');

Console.WriteLine(a.Item2);//Item1 代表第一個,Item2代表第二個


這樣我們就可以不用為了 一些簡單的結構或對象而去新建一個類了。
注意的是tuple最多支持8個成員,注意第8個成員很特殊,如果有8個成員,第8個必須是嵌套的tuple類型。

列如:Tuple<string, int, int, int, int, int, int, Tuple<int, int, int>>  紅色部分是第8個。

第8個元素使用方法:對象.Rest.Item1,對象.Rest.Item2

 

二、實際場景舉例

我們使用Tuple來完成一次簡單數據集的傳遞工作。

將Tuple作為返回值

public List<Tuple<int,string,DateTime>> GetUsers(){ 

  string sql="select ID,Name,CreateTime from Tbl_Users";

using (SqlDataReader r = SqlHelper.ExecuteReader(Connections.AdminDBConString, CommandType.Text, sql))   

 {             

        List<Tuple<int,string,DateTime>> list = new List<Tuple<int,string,DateTime>>(); 

              while (r.Read()) 

              { 

                  Tuple<int,string,DateTime> t = new Tuple<int,string,DateTime>(Convert.ToInt32(r[0]),r[1].ToString(),Convert.ToDatetime(r[2])); 

                  list.Add(t);

                } 

              return list; 

          }

}

使用也非常方便:

List<Tuple<int,string,datetime>> list=GetUsers();

foreach(Tuple<int,string,datetime> t in list)

 Console.write(t.Item1);//ID 

 Console.write(t.Item2);//Name

   Console.write(t.Item3);//CreateTime

}

到這里大家是不是明白了,上面那位童鞋的問題原來可以這么解決。

個人建議一些簡單的結構下可以這么使用,過于復雜的對象結構由于Tuple本身的一些限制(如:最多支持8項內容,超過的需要使用TRest)而操作復雜,我在實際開發中使用Tuple最多嵌套過一層Tuple。

大家在平時的工作學習中可以多多了解更多常用的基本知識,很多看起來不起眼的小東西將會在開發過程中起到非常大的作用。

相關資源獲取或其他疑問可在公眾號留言。如果你有優秀的原創技術類文章也可以投稿分享給大家賺取賞金喲!

微信掃一掃獲取更多開發資源:

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都江堰市| 巢湖市| 沅陵县| 衡阳县| 鹤庆县| 宣城市| 班戈县| 龙口市| 洛扎县| 十堰市| 共和县| 长寿区| 柯坪县| 盐边县| 玉门市| 武鸣县| 昭通市| 昌都县| 根河市| 平和县| 闵行区| 琼中| 富民县| 东阿县| 黔东| 怀安县| 龙游县| 阿克| 营口市| 醴陵市| 桂东县| 仪陇县| 华池县| 资兴市| 卫辉市| 磐石市| 黄骅市| 波密县| 临安市| 濮阳市| 滨州市|