class Program
{ static void Main( string[ ] args ) { SumEx1( ); }class package
{ public string Company { get; set; } public double weight { get; set; } } public static void SumEx1( ) { List<package> pack = new List<package> { new package {Company = "aaa",weight=11.00}, new package {Company = "bbb",weight=22.00}, new package { Company = "Wingtip Toys", weight = 33.00 }, new package { Company = "Adventure Works", weight = 44.00 } };//string.Sum()方法,合计数字类型总和。
double totalWeight = pack.Sum( p => p.weight ); Console.WriteLine( totalWeight);// Contains() 方法,是否在子字符串里出现过,为true,则只显示此字符串。
IEnumerable<package> var = from num in pack where num.Company.Contains("aaa") select num;foreach ( package item in var )
{ Console.WriteLine( item.Company); Console.WriteLine( item.weight ); } } }namespace Console_linq2
{ class Program { struct MyStruct { public string name; public int age; private string p; public MyStruct( string p ) { this.p = "a"; name = "张三"; age = 21; } } static void Main( string[ ] args ) { stringQueryFunction( ); IntQueryFunction( ); LinqToSqlFunction( ); StructFunction( ); ArrayReverse( ); ListReverse( ); ToListFunction( ); } private static void ToListFunction( ) { //int[ ] age = new int[ ] { 34, 54, 76, 57, 54, 6, 3, 53 }; string[ ] fruits = { "apple", "passionfruit", "banana", "mango", "orange", "blueberry", "grape", "strawberry" }; Console.WriteLine( "ToList()之前:" ); foreach ( string item in fruits ) { Console.WriteLine( item); } Console.WriteLine( "ToList()之后aaaa:" ); //ToList()方法,位数组的每个元素计算个数 List<int> lengths = fruits.Select( fruit => fruit.Length ).ToList( ); foreach ( int item in lengths ) { Console.WriteLine( item); } Console.WriteLine( ); } private static void ListReverse( ) { Console.WriteLine( "LastOrDefault( )的使用:" ); //LastOrDefault( ) 返回列表中的最后一个元素 string[ ] fruits = { "aa", "bb", "cc", "dd" }; string last = fruits.LastOrDefault( ); Console.WriteLine( String.IsNullOrEmpty( last ) ? "<string is null or empty>" : last ); /* This code produces the following output: <string is null or empty> */ Console.WriteLine( "List<int>泛型倒序:"); List<int> list = new List<int>( ); list.Add( 23 ); list.Add( 4 ); list.Add( 34 ); list.Add( 8 ); list.Add( 3 ); list.Add( 5 ); list.IndexOf( 34 ); Console.WriteLine( "排序之前:"); for ( int i = 0; i < list.Count; i++ ) { Console.WriteLine( list[i]); } list.Sort( ); Console.WriteLine( "排序之后:"); foreach ( int item in list ) { Console.WriteLine( item ); } Console.WriteLine( ); Console.WriteLine( "倒序之后:"); list.Reverse( ); foreach ( int item in list ) { Console.WriteLine( item); } } private static void ArrayReverse( ) { int[ ] inta = { 34, 6, 58, 53, 6 }; Console.WriteLine( "给inta[]排序"); for ( int i = 0; i < inta.Length; i++ ) { for ( int j = 0; j < inta.Length-i-1; j++ ) { if ( inta[j] < inta[j+1] ) { int tmp = inta[ j + 1 ]; inta[ j + 1 ] = inta[ j ]; inta[ j ] = tmp; } } Console.WriteLine( inta[i]); } } private static void StructFunction( ) { MyStruct m = new MyStruct( ); string[] message = { "aaa", "ddd" }; Console.WriteLine( " IEnumerable<MyStruct>:" ); IEnumerable<MyStruct> query = from c in message where c != null orderby c select new MyStruct ( m.name = c.ToString() ); foreach ( var item in query ) { Console.WriteLine( item.age+"\t"+ item.name ); } } private static void LinqToSqlFunction( ) { List<double> quantity = new List<double> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; List<double> quantity1 = new List<double> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; List<string> str = new List<string> { "a", "c", "d", "e", "f", "g", "h" }; List<string> str1 = new List<string> { "a", "c", "d", "e", "f", "g", "h" }; var query = from q in quantity select q; Console.WriteLine( "Avg:" ); Console.WriteLine( query.Average( ) ); Console.WriteLine( "count:" ); Console.WriteLine( query.LongCount( ) );//计算元素总量 Console.WriteLine( "int64count" ); Console.WriteLine( query.Count( ) );//计算元素总量 Console.WriteLine( "Max:" ); Console.WriteLine( query.Max( ) );//计算元素最大值 Console.WriteLine( "Min:" ); Console.WriteLine( query.Min( ) );//计算元素最小值 Console.WriteLine( "sum:" ); Console.WriteLine( query.Sum( ) );//计算元素总和 double average = quantity.Average( );//计算平均值 Console.WriteLine( "avg:" ); Console.WriteLine( average ); IEnumerable<double> avl = quantity.Distinct( ); Console.WriteLine( "List:" ); foreach ( double item in avl ) { Console.WriteLine( item ); } Console.WriteLine( ); Console.WriteLine( "将两个集合通过 Union 方法联合之后显示,Union方法只显示不重复的数据:" ); var inion2 = str.Union( str1 ); foreach ( var item in inion2 ) { Console.Write(item+" " ); } Console.WriteLine( ); IEnumerable<double> union = quantity.Union( quantity1 ); foreach ( double item in union ) { Console.Write( item + " " ); } Console.WriteLine( ); Console.WriteLine( "Intersect【出现多少个重复】:" ); IEnumerable<double> Intersects = quantity.Intersect( quantity1 ); foreach ( double item in Intersects ) { Console.Write( item+" " ); } Console.WriteLine( ); Console.WriteLine( "Except【出现多少个不重复】:" ); IEnumerable<double> Excepts = quantity.Except( quantity1 ); foreach ( double item in Excepts ) { Console.Write( item + " " ); } Console.WriteLine( ); Console.WriteLine( "Range方法的使用:3,表示从数字3开始,10,表示10个数字" ); var coolmath1 = Enumerable.Range( 3, 10 ).Reverse( ); foreach ( int item in coolmath1 ) { Console.Write( item+" " ); } Console.WriteLine( ); Console.WriteLine( "Select( x => x * 5 ) x表示集合中的每一个数字:" ); var coolmath = Enumerable.Range( 3, 10 ).Select( x => x * 5 ); foreach ( int item in coolmath ) { Console.Write( item+" " ); } } private static void stringQueryFunction( ) { string[ ] name = { "赵丽蓉", "马季", "侯耀文", "马三立", "侯宝林", "乔布斯" }; //模糊查询 //IEnumerable<string> val = from num in name where num.StartsWith( "马" ) select num; //排序 IEnumerable<string> val = from num in name orderby num select num; var mum = (from m in name select m).First(); Console.WriteLine( "var First()返回指定的条件:" ); foreach ( var item in mum ) { Console.WriteLine( item); } Console.WriteLine( "+++++++++++++++++"); foreach ( var item in val ) { Console.WriteLine( item ); } } private static void IntQueryFunction( ) { int[ ] age = new int[ ] { 5, 6, 78, 45, 4, 768, 899, 67, 5, 900 }; var numQuery = from num in age where num > 800 && num <= 900 select num; IEnumerable<int> query = ( from c in age orderby c select c ).Take( 4 ); Console.WriteLine( "Take( 4 )指定出现4个" ); foreach ( var item in query ) { Console.WriteLine( item); } Console.WriteLine("============================="); Console.WriteLine( ); Console.WriteLine( "age where num > 800 && num <= 900的有: " ); foreach ( var item in numQuery ) { Console.Write( "{0} ", item ); } Console.WriteLine( ); } }}