foreach遍历linq所有数据
linq 能查询的数据
对象。比如集合、数组、字符串等等。
关系。分为 linq to dataset 和 linq to sql,前者用于 dataset 查询,后者用于 sql server 数据库教程查询(相信今后还会支持其他数据库)。
xml。xml 文件、xml 对象等。
linq 优点
不论查什么数据,都是统一的结构。
功能比其他查询方式更强。
可以在编译时进行语法检查,不像 sql 字符串,只能在运行时发现其是否有语法错误。
可以在编译时进行类型检查。
开发时有 intellisense 支持。
调试方便。
linq 环境
linq 要在 .net framework 3.5 下使用,其支持的语言有:c# 3.0、vb9。所以在 windows 2000 下无法使用 linq,因为 windows 2000 下无法安装 .net framework 3.5
using system;
using system.collections.generic;
using system.linq;
using system.text;public class mainclass {
public static void main() {
listcustomers = getcustomerlist();
var wacustomers =
from c in customers
where c.region == "r1"
select c;
foreach (var customer in wacustomers) {
console.writeline("customer {0}: {1}", customer.customerid, customer.companyname);
foreach (var order in customer.orders) {
console.writeline(" order {0}: {1}", order.id, order.orderdate);
}
}
}
static listgetcustomerlist() {
listemptree = new list ();
emptree.add(new product { productname = "a", category = "o", unitprice = 12, unitsinstock = 5, total = 36, orderdate = new datetime(2005, 1, 1), id = 1 });
emptree.add(new product { productname = "b", category = "o", unitprice = 2, unitsinstock = 4, total = 35, orderdate = new datetime(2005, 1, 1), id = 1 });
emptree.add(new product { productname = "c", category = "o", unitprice = 112, unitsinstock = 3, total = 34, orderdate = new datetime(2005, 1, 1), id = 1 });
emptree.add(new product { productname = "d", category = "o", unitprice = 112, unitsinstock = 0, total = 33, orderdate = new datetime(2005, 1, 1), id = 1 });
emptree.add(new product { productname = "e", category = "o", unitprice = 1112, unitsinstock = 2, total = 32, orderdate = new datetime(2005, 1, 1), id = 1 });
emptree.add(new product { productname = "f", category = "o", unitprice = 11112, unitsinstock = 0, total = 31, orderdate = new datetime(2005, 1, 1), id = 1 });list
l = new list ();
l.add(new customer { companyname = "a", region = "r1", unitsinstock = 1, orders = emptree, customerid =0});
l.add(new customer { companyname = "b", region = "r2", unitsinstock = 2, orders = emptree, customerid = 1 });
l.add(new customer { companyname = "c", region = "r3", unitsinstock = 3, orders = emptree, customerid = 2 });
l.add(new customer { companyname = "d", region = "r4", unitsinstock = 4, orders = emptree, customerid = 3 });
l.add(new customer { companyname = "e", region = "r5", unitsinstock = 5, orders = emptree, customerid = 4 });
return l;
}
}class customer : icomparable
{
public string companyname { get; set; }
public string region { get; set; }
public listorders { get; set; }
public int unitsinstock { get; set; }
public int customerid { get; set; }public override string tostring() {
return string.format("id: {0}, name: {1}, region: {3}", this.customerid, this.companyname, this.region);
}
int icomparable.compareto(customer other) {
if (other == null)
return 1;if (this.customerid > other.customerid)
return 1;if (this.customerid < other.customerid)
return -1;return 0;
}
}
class product : icomparable{
public string productname { get; set; }
public string category { get; set; }
public int unitprice { get; set; }
public int unitsinstock { get; set; }
public int total { get; set; }
public datetime orderdate { get; set; }
public int id { get; set; }public override string tostring() {
return string.format("id: {0}, name: {1} , category: {3}", this.id, this.productname, this.category);
}
int icomparable.compareto(product other) {
if (other == null)
return 1;
if (this.id > other.id)
return 1;if (this.id < other.id)
return -1;return 0;
}
}
电神魔傀2街机免费版 官方版v1.2.1
下载三国战纪2手游腾讯渠道服 安卓版v2.41.0.0
下载三国战纪2手游抖音渠道服 安卓版v2.41.0.0
下载三国战纪2折扣服 安卓版v2.41.0.0
下载叫我大掌柜小米版 安卓版v7.4.4
叫我大掌柜小米版是这款模拟经营类手游的渠道服版本,在此版本中
cooking fever正版 安卓最新版v23.0.2
cooking fever正版是一款非常好玩的模拟经营类手游
咖啡厅的生活故事 最新版v1.7
咖啡厅的生活故事是一款模拟经营游戏,玩家们在游戏中可以经营一
迅猛龙模拟器金币不减反增版 v1.1.8
迅猛龙模拟器无限金币版是一款动物模拟类游戏,玩家们将在游戏中
泽塔奥特曼升华器免广告版 v1.4
泽塔奥特曼升华器去广告版是游戏的破解版本,在该版本中为玩家去