相关疑难解决方法(0)

了解LINQ

概观

LINQ,我在网站上提出了很多问题.我提出的问题范围广泛而且多种多样,往往背后没有太多背景.因此,为了巩固我在Linq上获得的知识,我发布了这个问题,以便在我继续学习LINQ时使用其他信息来维护和更新它.

我也希望它能够成为想要了解LINQ的其他人的有用资源.

什么是LINQ?

来自MSDN:

LINQ项目是.NET Framework的一组扩展的代号,包含语言集成的查询,设置和转换操作.它使用本机语言语法扩展C#和Visual Basic,并提供类库以利用这些功能.

这意味着LINQ提供了一种使用通用语法查询各种数据源的标准方法.

LINQ有哪些口味?

目前,Microsoft提供了一些不同的LINQ提供程序:

还有很多其他的,其中许多列在这里.

有什么好处?

  • 查询多个数据源的标准化方法
  • 编译查询的时间安全性
  • 在内存对象中执行基于集合的操作的优化方法
  • 能够调试查询

那么LINQ怎么办?

Chook提供了一种输出CSV文件的方法
Jeff显示了如何从数组中删除重复项
Bob 从数据表中获取一个不同的有序列表
Marxidad显示了如何对数组进行排序
Dana获得了使用Linq实现快速排序的帮助

从哪儿开始?

GateKiller的问题链接摘要如下:
Scott Guthrie 在他的博客上为Linq提供了一个介绍MSDN
上LINQ的概述

ChrisAnnODell建议退房:

linq linq-to-objects linq-to-entities linq-to-sql

188
推荐指数
3
解决办法
2万
查看次数

LINQ初学者指南

在Stack Overflow测试期间,我看到了很多关于LINQ SQL的问题,但对它一无所知......这听起来很有趣.

什么是LINQ,我该如何开始?

链接指南或文档奖金:)

PS:我是一名长期使用Datatables和Parameterized SQL的C#开发人员

linq .net-3.5

36
推荐指数
6
解决办法
2万
查看次数

使用Intellisense和编译时检查提取反射的属性名称

好.所以我有一些代码将winForm上的某些控件映射到对象中的某些属性,以便在数据发生某些事情时对控件执行某些操作.一切都很好,工作得很好.不是问题.问题是,要将项添加到映射中,我调用的函数看起来像:

this.AddMapping(this.myControl,myObject,"myObjectPropertyName");
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在编译时很难说出上述行与下面的行之间的区别:

this.AddMapping(this.myControl,myObject,"myObjectPropretyName");
Run Code Online (Sandbox Code Playgroud)

由于最后一个参数是一个字符串,因此没有编译时检查或类似的任何东西会强制字符串本身实际上对应于给定对象上的有效属性名称.此外,Refactor和"查找所有引用"之类的内容错过了这种引用,当属性名称发生变化时会导致欢闹.所以我想知道的是,是否有某种方法可以更改函数,以便我传入的内容仍然是以某种方式表示属性名称的字符串,但是使用编译时检查实际值是否进入.有人说我可以用Expression Trees做到这一点,但我已经阅读了它们,似乎没有看到连接.我喜欢做类似的事情:

this.AddMapping(this.myControl,myObject,myObject.myObjectPropertyName);
Run Code Online (Sandbox Code Playgroud)

甚至

this.AddMapping(this.myControl,myObject.myObjectPropertyName);
Run Code Online (Sandbox Code Playgroud)

会很甜蜜!

有任何想法吗?

c# mapping reflection intellisense compile-time

14
推荐指数
1
解决办法
2369
查看次数