生活随笔
收集整理的這篇文章主要介紹了
C#中Tuple的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定義:元組是具有 特定數量和序列 的元素 的數據結構? (注意斷句哈!)
元組通常有四種使用方式︰
一、表示一組數據
例如,一個元組可以表示一條數據庫記錄,并且每一個分量對應表示這條記錄的每個字段便于對數據集進行訪問和操作,例如下面這個例子(數據集市每個學生和他的分數,最后求出所有成績的學生的平均分數):
二、便于對數據集進行訪問和操作
例如下面這個例子(數據集市每個學生和他的分數,最后求出所有成績的學生的平均分數):
????????
[csharp]?view plaincopy print?
using?System;?? ?? public?class?Example?? {?? ???public?static?void?Main()?? ???{?? ??????Tuple<string,?Nullable<int>>[]?scores?=??? ????????????????????{?new?Tuple<string,?Nullable<int>>("Jack",?78),?? ??????????????????????new?Tuple<string,?Nullable<int>>("Abbey",?92),??? ??????????????????????new?Tuple<string,?Nullable<int>>("Dave",?88),?? ??????????????????????new?Tuple<string,?Nullable<int>>("Sam",?91),??? ??????????????????????new?Tuple<string,?Nullable<int>>("Ed",?null),?? ??????????????????????new?Tuple<string,?Nullable<int>>("Penelope",?82),?? ??????????????????????new?Tuple<string,?Nullable<int>>("Linda",?99),?? ??????????????????????new?Tuple<string,?Nullable<int>>("Judith",?84)?};?? ??????int?number;?? ??????double?mean?=?ComputeMean(scores,?out?number);?? ??????Console.WriteLine("Average?test?score:?{0:N2}?(n={1})",?mean,?number);?? ???}?? ?? ???private?static?double?ComputeMean(Tuple<string,?Nullable<int>>[]?scores,?out?int?n)??? ???{?? ??????n?=?0;???????? ??????int?sum?=?0;?? ??????foreach?(var?score?in?scores)?? ??????{?? ?????????if?(score.Item2.HasValue)?? ?????????{??? ????????????n?+=?1;?? ????????????sum?+=?score.Item2.Value;?? ?????????}?? ??????}??????? ??????if?(n?>?0)?? ?????????return?sum?/?(double)?n;?? ??????else?? ?????????return?0;?? ???}?? }?? ?? ??
三、一個方法有多個返回值無需使用out參數(事實上我就是用的這種方式)
貼一段我的代碼
???????
[csharp]?view plaincopy print?
public?Tuple<int,?string>?ManEntryPN(DateTime?recTime,?double?netLossRate,?double?electricityOnline,?double?electricitySell)?? {?? ?????? ????Tuple<int,?string>?tuple?=?null;?? ????string?testProc?=?"queryManagePageData";?? ????SqlParameter[]?testParas?=?new?SqlParameter[]?{?? ????????new?SqlParameter("@recTime",recTime),?? ????????new?SqlParameter("@netLossRate",netLossRate),?? ????????new?SqlParameter("@electricityOnline",electricityOnline),?? ????????new?SqlParameter("@electricitySell",electricitySell),?? ????????new?SqlParameter("@indexName","TestManEntryPN")?? ????};?? ????DataTable?dt?=?new?DataTable();?? ????dt?=?sqlhelper.ExecuteQuery(testProc,?testParas,?CommandType.StoredProcedure);?? ????if?(dt.Rows.Count?>?0)?? ????{?? ?????????? ????????return?tuple?=?new?Tuple<int,?string>(1,?recTime?+?"數據已經錄入");?? ????}?? ?? ?????? ????string?insertProc?=?"queryManagePageData";?? ????SqlParameter[]?insertParas?=?new?SqlParameter[]?{?? ????????new?SqlParameter("@recTime",recTime),?? ????????new?SqlParameter("@netLossRate",netLossRate),?? ????????new?SqlParameter("@electricityOnline",electricityOnline),?? ????????new?SqlParameter("@electricitySell",electricitySell),?? ????????new?SqlParameter("@indexName","ManEntryPN")?? ????};?? ????int?res?=?sqlhelper.ExecuteNonQuery(insertProc,?insertParas,?CommandType.StoredProcedure);?? ????if?(res?>?0)?? ????{?? ?????????? ????????return?tuple?=?new?Tuple<int,?string>(0,?"Sucess");?? ????}?? ????return?tuple?=?new?Tuple<int,?string>(1,?"插入失敗");?? }??
四、將多個值傳給單個參數的方法
例如,Thread.Start(Object)?方法只有一個參數,即你可以傳一個值給該線程的啟動方法。?如果你提供Tuple<T1,?T2,?T3>?對象作為方法參數,則你可以給該線程的啟動方法傳3個值
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的C#中Tuple的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。