2023年6月21日发(作者:)

C#中Tuple的使⽤鉴于MSDN上⾯的机器翻译实在太烂,还是⾃⼰翻译吧,虽然⿇烦了点(-_-)。定义:元组是具有 特定数量和序列 的元素 的数据结构 (注意断句哈!)元组通常有四种使⽤⽅式︰⼀、表⽰⼀组数据例如,⼀个元组可以表⽰⼀条数据库记录,并且每⼀个分量对应表⽰这条记录的每个字段便于对数据集进⾏访问和操作,例如下⾯这个例⼦(数据集市每个学⽣和他的分数,最后求出所有成绩的学⽣的平均分数):⼆、便于对数据集进⾏访问和操作例如下⾯这个例⼦(数据集市每个学⽣和他的分数,最后求出所有成绩的学⽣的平均分数):

using System;public class Example{ public static void Main() { Tuple>[] scores =

{ new Tuple>("Jack", 78), new Tuple>("Abbey", 92),

new Tuple>("Dave", 88), new Tuple>("Sam", 91),

new Tuple>("Ed", null), new Tuple>("Penelope", 82), new Tuple>("Linda", 99), new Tuple>("Judith", 84) }; int number; double mean = ComputeMean(scores, out number); ine("Average test score: {0:N2} (n={1})", mean, number); } private static double ComputeMean(Tuple>[] scores, out int n)

{ n = 0;

int sum = 0; foreach (var score in scores) { if (ue) {

n += 1; sum += ; } }

if (n > 0) return sum / (double) n; else return 0; }}// The example displays the following output:// Average test score: 88 (n=7)三、⼀个⽅法有多个返回值⽆需使⽤out参数(事实上我就是⽤的这种⽅式)贴⼀段我的代码

public Tuple ManEntryPN(DateTime recTime, double netLossRate, double electricityOnline, double electricitySell) { //检验查询 Tuple 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 = eQuery(testProc, testParas, Procedure); if ( > 0) { //如果该⽇期数据已经录⼊ return tuple = new Tuple(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 = eNonQuery(insertProc, insertParas, Procedure); if (res > 0) { //如果录⼊成功 return tuple = new Tuple(0, "Sucess"); } return tuple = new Tuple(1, "插⼊失败"); }四、将多个值传给单个参数的⽅法例如, ⽅法只有⼀个参数,即你可以传⼀个值给该线程的启动⽅法。 如果你提供 对象作为⽅法参数,则你可以给该线程的启动⽅法传3个值。

2023年6月21日发(作者:)

C#中Tuple的使⽤鉴于MSDN上⾯的机器翻译实在太烂,还是⾃⼰翻译吧,虽然⿇烦了点(-_-)。定义:元组是具有 特定数量和序列 的元素 的数据结构 (注意断句哈!)元组通常有四种使⽤⽅式︰⼀、表⽰⼀组数据例如,⼀个元组可以表⽰⼀条数据库记录,并且每⼀个分量对应表⽰这条记录的每个字段便于对数据集进⾏访问和操作,例如下⾯这个例⼦(数据集市每个学⽣和他的分数,最后求出所有成绩的学⽣的平均分数):⼆、便于对数据集进⾏访问和操作例如下⾯这个例⼦(数据集市每个学⽣和他的分数,最后求出所有成绩的学⽣的平均分数):

using System;public class Example{ public static void Main() { Tuple>[] scores =

{ new Tuple>("Jack", 78), new Tuple>("Abbey", 92),

new Tuple>("Dave", 88), new Tuple>("Sam", 91),

new Tuple>("Ed", null), new Tuple>("Penelope", 82), new Tuple>("Linda", 99), new Tuple>("Judith", 84) }; int number; double mean = ComputeMean(scores, out number); ine("Average test score: {0:N2} (n={1})", mean, number); } private static double ComputeMean(Tuple>[] scores, out int n)

{ n = 0;

int sum = 0; foreach (var score in scores) { if (ue) {

n += 1; sum += ; } }

if (n > 0) return sum / (double) n; else return 0; }}// The example displays the following output:// Average test score: 88 (n=7)三、⼀个⽅法有多个返回值⽆需使⽤out参数(事实上我就是⽤的这种⽅式)贴⼀段我的代码

public Tuple ManEntryPN(DateTime recTime, double netLossRate, double electricityOnline, double electricitySell) { //检验查询 Tuple 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 = eQuery(testProc, testParas, Procedure); if ( > 0) { //如果该⽇期数据已经录⼊ return tuple = new Tuple(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 = eNonQuery(insertProc, insertParas, Procedure); if (res > 0) { //如果录⼊成功 return tuple = new Tuple(0, "Sucess"); } return tuple = new Tuple(1, "插⼊失败"); }四、将多个值传给单个参数的⽅法例如, ⽅法只有⼀个参数,即你可以传⼀个值给该线程的启动⽅法。 如果你提供 对象作为⽅法参数,则你可以给该线程的启动⽅法传3个值。