linq 语言集成查询 ,目的就是在所有对象中可以使用很方便快捷的方式实现查询操作.
最近看了一下感觉很酷,但是现在是预览版,不知道是否可以投入到新项目的使用.
大家说说自己的看法,谢谢.例子:
static void NumQuery()
{
var numbers = new int[] { 1, 4, 2, 7, 8, 9 };
var evenNumbers =
from p in numbers
where (p % 2) == 0
select p; Console.WriteLine("Result:");
foreach(var val in evenNumbers)
{
Console.WriteLine(val);
} Console.ReadLine();
}
最近看了一下感觉很酷,但是现在是预览版,不知道是否可以投入到新项目的使用.
大家说说自己的看法,谢谢.例子:
static void NumQuery()
{
var numbers = new int[] { 1, 4, 2, 7, 8, 9 };
var evenNumbers =
from p in numbers
where (p % 2) == 0
select p; Console.WriteLine("Result:");
foreach(var val in evenNumbers)
{
Console.WriteLine(val);
} Console.ReadLine();
}
解决方案 »
- 解析HTML文本问题
- 怎样执行了一个方法之后停顿一下,再执行下一个方法?
- C#WINFORM程序在vista系统下运行的权限问题?
- 三维编程 做一个长的软管 涉及到点的编程 跪求高手指点算法或思路。
- 关于BinaryReader.Read()方法分批次读取二进制文件的问题(二进制文件特大,一次读不完)。
- 。NET 下PocketPC 中仿真设备的数据库编程初级问题——附有详图
- 关于c#的dx9编程
- c#怎么用动态域名解析
- 当前最活跃、问题解决实时性最高的技术组织-----c#圣地.net(顺便散分)
- 关于读文档、下载文档的问题
- 请问vc++2005的功能比vc++6.0有没有增强,比C#2005又如何,如果做网络编程和视频,vc++2005还适合吗?
- 有人学过C吗?
{
int[] numbers = new int[] { 1, 4, 2, 7, 8, 9 };
int[] evenNumbers = Array.FindAll(numbers,delegate(int x){return (x % 2)== 0;});
Console.WriteLine("Result:");
Array.ForEach(evenNumbers,delegate(int x){Console.WriteLine(x);});
Console.ReadLine();
}
杀鸡用牛刀,仅仅因为偷懒(而不是无法获得)而使用类型推断,都是不智之举。
class Person
{
public int Age;
public string Name;
}static void ObjectQuery()
{
var people = new List<Person>() {
new Person { Age=12, Name="Bob" },
new Person { Age=18, Name="Cindy" },
new Person { Age=13 }
};
var teenagers =
from p in people
where p.Age > 12 && p.Age < 20
select p;
Console.WriteLine("Result:");
foreach(var val in teenagers)
{
Console.WriteLine("> Name = {0}, Age = {1}", val.Name, val.Age);
}
Console.ReadLine();
}
类型的自动推断
输出的结果其实是使用yield而不是直接写入结果集合的。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MS的Preview版的任何东西都没有听说稳定的,最狠的就是当年用whidbey preview版时,连打开程序都不停报错……
而且话由说回来了,现在的系统一般是不会直接将大量的数据放入内存的,这样的话,用linq又怎么样,还不如再数据库中将部分常用数据建到内存中来得方便?我觉得现在linq最有用的,也就是Xlinq了,Dlinq用处还不是很大,仅仅是够cool而已以上仅仅是个人看法,欢迎讨论
int count;
people.ForEach(delegate(Person p)
{ if(p.Age > 12 && p.Age < 20 && p.Age<>x)
{p.Name+="Flag:";count++}
});
注意,我不是强调Linq是错误的。实际上我觉得4GL编程语言远比3GL编程语言优越许多。我要说明Linq现在不具有4GL或者大家所知道的关系运算的基本特征(多数据源的Union),所以还是个羸弱的阿斗,何时变得真正有用,还不确定。
在开发难度上应该算是比之前有所降低,不过现在vs.net对linq语法的调试和编辑支持不够好.xlinq现在还没太多接触,回去好好学习一下.
同时希望听到更多不同的看法和观点.
"输出的结果其实是使用yield而不是直接写入结果集合的。"
...很抱歉,没有看懂这个意思,可否赐教并说明一下这句话的意思?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~preview版的东西本来就很多问题,君不见那一条一条的红线?烦都烦死了
调试就更不用说了所以,拿来玩玩可以,实际的做东西就算了吧还有性能的问题,真的有点“以辞害意”的感觉另外,我为什么觉得XLINQ比较有用一些呢,因为XPATH的查询有的时候让人郁闷,功能太若,找到某些东西之后还需要写一堆代码来处理结果,而XLINQ在这一方就优秀很多了,lz可以试试,如果先前也常使用XPATH的话,就能比较明显的感觉到这一点