比如有一個9行5列的陣列string[9,5] Input_Data
里面存盤的
{1班,張三,男,85,數學}
{1班,李四,男,72,語文}
{2班,王五,女,85,數學}
{2班,張三,女,88,語文}
{1班,張三,男,76,英語}
{2班,張三,女,98,數學}
{1班,李四,男,98,數學}
{2班,王五,女,95,英語}
{1班,張三,男,80,語文}
如何通過前三列完全一致時,把第四列分數求和。
生成以下結果的陣列 string[,] Output_Data
{1班,張三,男,241,總分}
{1班,李四,男,170,總分}
{2班,王五,女,180,總分}
{2班,張三,女,186,總分}
uj5u.com熱心網友回復:
1、在資料庫一端直接通過查詢得到結果;2、遍歷一遍,以前三個作為key,第四個作為值,生成字典,不存在則添加,存在則加值。
uj5u.com熱心網友回復:
請教以下,自己頂一下uj5u.com熱心網友回復:
最直接的方法就是套兩個回圈吧uj5u.com熱心網友回復:
資料庫查詢的方法
能否說的詳細一些
uj5u.com熱心網友回復:
在資料庫里?select concat(a,b,c),sum(d) from t group by concat(a,b,c)
uj5u.com熱心網友回復:
樓主可以考慮用 Linq 來弄,其實我也不是很懂這個,就當拋磚引玉吧。--
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
public static DataTable dt1 = new DataTable("tb1");
static void Main(string[] args)
{
dt1.Columns.Add(new DataColumn("bj", typeof(string)));
dt1.Columns.Add(new DataColumn("xm", typeof(string)));
dt1.Columns.Add(new DataColumn("xb", typeof(string)));
dt1.Columns.Add(new DataColumn("fs", typeof(Int32)));
dt1.Columns.Add(new DataColumn("km", typeof(string)));
Add(dt1, "1班", "張三", "男", 85, "數學");
Add(dt1, "1班", "李四", "男", 72, "語文");
Add(dt1, "2班", "王五", "女", 85, "數學");
Add(dt1, "2班", "張三", "女", 88, "語文");
Add(dt1, "1班", "張三", "男", 76, "英語");
Add(dt1, "2班", "張三", "女", 98, "數學");
Add(dt1, "1班", "李四", "男", 98, "數學");
Add(dt1, "2班", "王五", "女", 95, "英語");
Add(dt1, "1班", "張三", "男", 80, "語文");
DataSet ds1 = new DataSet();
ds1.Tables.Add(dt1);
var query = from d1 in ds1.Tables[0].AsEnumerable()
group d1 by new
{
bj = d1.Field<string>("bj"),
xm = d1.Field<string>("xm"),
xb = d1.Field<string>("xb")
}
into s
select new
{
bj = s.Select(p => p.Field<string>("bj")).First(),
xm = s.Select(p => p.Field<string>("xm")).First(),
xb = s.Select(p => p.Field<string>("xb")).First(),
fs = s.Sum(p => p.Field<Int32>("fs"))
};
foreach (var q in query.ToList())
{
Console.WriteLine("班級:{0} 姓名:{1} 性別:{2} 分數:{3} 總分", q.bj, q.xm, q.xb, q.fs.ToString());
}
Console.ReadKey();
}
public static void Add(DataTable dt, string bj, string xm, string xb, int fs, string km)
{
DataRow dr = dt.NewRow();
dr["bj"] = bj;
dr["xm"] = xm;
dr["xb"] = xb;
dr["fs"] = fs;
dr["km"] = km;
dt.Rows.Add(dr);
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/227783.html
標籤:C#
上一篇:求求大神指點
