Linq学习<一>
2024-10-21 07:38:38
lambda查询语法: var result =arrarylist.where(n=>n.contains("l")) 简化的委托方法实例
linq查询结构:
var result = from ------- in arrayList
where------
(order-------)
select -------
有点像sql写法:select * from table name where .我们可以简答记成将sql中select放在后面
var是C#中的一个新关键字,用于声明一般的变量类型,特别适合于包含LINQ
查询的结果。var关键字告诉C#编译器,根据查询推断结果的类型。这样,就不必提前声明从LINQ
查询返回的对象类型了——编译器会推断出该类型
下面例子张的数据源是前面声明的字符串数组stringArray。变量items只是数据源中某一元素的代表,类似
于foreach语句后面的变量名。指定from子句,就可以只查找集合的一个子集,而不用迭代所有的
元素。
public void test()
{
Console.WriteLine("-----------Linq first Example------------------");
string[] stringArray = new string[] {"cat","litter","cot","dog","love","like" }; var result = //linq way,查询语法
from items in stringArray
where items.StartsWith("l")
select items;
foreach (var item in result)
{
Console.WriteLine(item); }
//,var是C#中的一个新关键字,用于声明一般的变量类型,特别适合于包含LINQ查询的结果。var关键字告诉C#编译器,根据查询推断结果的类型
}
linq是一种查询语法,还有一种方式语法,就是lambda,用起来更方便
public void lambdaTest()
{
Console.WriteLine("-----------Lamada text------------------"); string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" }; var result = stringArray.Where(n => n.StartsWith("l")); //Lambda way查询语法
foreach (var item in result)
{ Console.WriteLine(item); }
}
2.linq排序
public void LinqSortTest()
{
Console.WriteLine("-----------result after sort-------------------");
string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" }; var result = //linq way,查询语法
from items in stringArray
where items.StartsWith("l")
// orderby items descending //ascending 默认从A——Z
orderby items.Substring(items.Length-1) //从items的倒数第二字母开始排序
select items;
foreach (var item in result)
{
Console.WriteLine(item); } }
用lamabda排序
public void lambdaOrderTest()
{
Console.WriteLine("-----------lambdaOrderTest-------------------");
string[] stringArray = new string[] { "cat", "litter", "cot", "dog", "love", "like" }; var result =stringArray.OrderBy(n=>n).Where(n=>n.Contains("l"));
// var result = stringArray.OrderByDescending(n => n).Where(n=>n.Contains("l"));
// var result = stringArray.OrderBy(n => n.Substring(n.Length - 1)).Where(n=>n.StartsWith("l"));
foreach (var item in result)
{
Console.WriteLine(item);
}
}
3.用ramdon生成一个大的int数组进行操作
public void SearchDataFromABigArray()
{
Console.WriteLine("--------------Get Data from a big array----------------------");
int[] intArray = GeneratorBigArray(12345678); var result = from items in intArray
where items < 10000
select items;
foreach (var item in result)
{
Console.WriteLine(item);
}
}
linq基本寒素:sum,max,min,averge 注意sum时如果数据过大,对于32位会产生溢出错误,linq有Longcount(),也就是将结果转为64位,防止溢出错误,如下:
Console.WriteLine(result.Sum(n=>(long)n));
public void UsingFunctionOfLinq()
{
Console.WriteLine("----------------------using fuction in linq--------------------------");
int[] intArray = GeneratorBigArray(12345678);
var result = from items in intArray
where items > 1000
select items; Console.WriteLine("sum is:");
Console.WriteLine(result.Sum(n=>(long)n));
Console.WriteLine("max is:");
Console.WriteLine(result.Max());
Console.WriteLine("min is:");
Console.WriteLine(result.Min());
Console.WriteLine("average is :");
Console.WriteLine(result.Average());
}
生成大数据函数:
这里采用radom(0)来生成不一样的数据,赋值给int数组,
private int[] GeneratorBigArray(int p)
{
Random genertor = new Random(0);
int[] array = new int[p];
for (int i = 0; i < p - 1; i++)
{
array[i] = genertor.Next();
}
return array;
}
最新文章
- php在5.5.0默认提供了Zend OPcache
- Ajax加载菊花loding效果
- Hadoop Cluster 安装
- 一个简易的dota改键助手
- CSS强制中英文换行与不换行
- MD5 加密的两种方法
- undrop for innodb c_parser 不完美之处
- 解决eclipse 使用run运行,始终会跳到debug模式!
- Add and Search Word - Data structure design 解答
- SEO高手在扯蛋?
- hdu 3345 War Chess
- Codeforces Round #467 (div.2)
- 1.7 理解dropout
- 逆变(contravariant)与协变(covariant):只能用在接口和委托上面
- SpringBoot编写自定义配置信息
- nginx实现nginx/tomcat负载均衡
- hadoop项目开发案例方案汇总
- android注解处理技术APT
- google tensorflow bert代码分析
- abd启动不了
热门文章
- Could not find class &#39;org.ksoap2.serialization.SoapObject
- js大法处理富文本输入
- 转载:利用UDEV服务解决RAC ASM存储设备名
- python学习(十) 自带电池
- activemq安装运行及其在springboot中的queue和topic使用
- html 之表单,div标签等
- Java微信公众平台开发(十五)--微信JSSDK的使用
- MySQL与SQLServer的update left join语法区别
- Timer中的重要函数
- 201671010140. 2016-2017-2 《Java程序设计》java学习第三周