LINQ实战

本文介绍LINQ的基本操作,包括求和、查找最小值、筛选特定元素等,并展示了如何使用LINQ进行数据处理任务,如数组合并、去除重复项、数据库记录的修改与插入等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单合计
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
double numSum = numbers.Sum();

 

合计数组中的字符数
string[] words = { "cherry", "apple", "blueberry" };
double totalChars = words.Sum(w => w.Length);

 

找到最小的值
int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
int minNum = numbers.Min();

 

找到字符数最少的那个串
string[] words = { "cherry", "apple", "blueberry" };
int shortestWord = words.Min(w => w.Length);


检查数组中是否有至少一个包含ei的值
string[] words = { "believe", "relief", "receipt", "field" };
bool iAfterE = words.Any(w => w.Contains("ei"));

 

取表中Name字段唯一值并且排序
DataTable orders = dataSet.Tables[0];
EnumerableRowCollection<DataRow> query =(from order in orders.AsEnumerable() orderby order.Field<string>("Name") select order.Field<string>("Name")).Distinct();
DataView view = query.AsDataView();
GridView1.DataSource=view;
GridView1.DataBind();

 

按表中Name字段分组,合计Money
DataTable orders = dataSet.Tables[0];
var query =from order in orders.AsEnumerable() group order by order.Field<string>("Name") into g select new { Names=g.Key,Moneys=g.Sum(order=>order.Field<decimal>("Money"))};
GridView1.DataSource = query.AsQueryable();
GridView1.DataBind();

 

内连接
DataTable orders = dataSet.Tables[0];
DataTable citys = dataSet.Tables[1];
var query =from order in orders.AsEnumerable()
           join city in citys.AsEnumerable()
           on order.Field<string>("Name") equals city.Field<string>("Name")
           select new
           {
               Name = order.Field<string>("Name"),
               Money = order.Field<decimal>("Money"),
               City = city.Field<string>("City")
           };

 

左连接
DataTable orders = dataSet.Tables[0];
DataTable citys = dataSet.Tables[1];
var query =from order in orders.AsEnumerable()
           join city in citys.AsEnumerable()
           on order.Field<string>("Name") equals city.Field<string>("Name") into cits
           select new
           {
               Name = order.Field<string>("Name"),
               Money = order.Field<decimal>("Money"),
               City = cits.Count() > 0 ? cits.First().Field<string>("City") : ""
           };

 

合并并且取掉重复项
int[] S1 = { 1, 2, 3, 4, 5 };
int[] S2 = { 3, 2, 7, 8, 10 };

var S3s = S1.Union(S2);
foreach (var S3 in S3s)
  MessageBox.Show(S3.ToString());


通过新建项LINQ TO SQL类,增加拖拽表TRANSTEST
带事务的修改记录
DataClassesDataContext db = new DataClassesDataContext(ConfigurationManager.ConnectionStrings["TESTDBConnectionString"].ConnectionString);
db.CommandTimeout = 60;
using (TransactionScope ts = new TransactionScope())
{
  var records = db.TRANSTEST.Where(p => p.Name == "MAJ'IE");
  foreach (var record in records)
  {
    record.orders = 1;
    record.other = DateTime.Now.Second.ToString();
  }
  db.SubmitChanges();
  ts.Complete();
}


增加记录
DataClassesDataContext db = new DataClassesDataContext(ConfigurationManager.ConnectionStrings["TESTDBConnectionString"].ConnectionString);
TRANSTEST record = new TRANSTEST();
record.other = "ILOVEYOU";
db.TRANSTEST.InsertOnSubmit(record);
db.SubmitChanges();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值