Linq to BBJECT之非延时标准查询操作符

时间:2023-01-13 17:14:48

非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用。

1、ToArray操作符

  ToArray操作符用于将一个输入序列转换成一个数组。

  方法原型:

public static TSource[] ToArray<TSource>(this IEnumerable<TSource> source);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
List<int> listInt = new List<int>();
listInt.Add();
listInt.Add();
listInt.Add();
int[] intArr = listInt.AsEnumerable().ToArray(); //将集合转换为数组  //如果不AsEnumerable()则调用的就是List<T>类的ToArray()方法,效果一样
foreach (int i in intArr)
{
Console.WriteLine(i); //输出1 2 3
}
Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

2、ToList操作符

  ToList操作符用于将一个输入序列转换成一个List<T>对象。

  来看方法原型:

  public static List<TSource> ToList<TSource>(this IEnumerable<TSource> source);

  注意到返回的List<T>,任意IEnumerable<T>转换为List<T>

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , , , };
List<int> ListInt = ints.ToList();
foreach (int i in ints)
{
Console.WriteLine(i); //输出 1 2 3 4 5
} Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

3、ToDictionary操作符

  ToDictionary操作符用于将一个输入序列转换为一个Dictionary<K,T>集合对象。

  看方法原型:

Linq to BBJECT之非延时标准查询操作符
    public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector);

    [TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector); public static Dictionary<TKey, TSource> ToDictionary<TSource, TKey>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, IEqualityComparer<TKey> comparer); public static Dictionary<TKey, TElement> ToDictionary<TSource, TKey, TElement>(this IEnumerable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer);
Linq to BBJECT之非延时标准查询操作符

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
People p1 = new People(,"张飞",);
People p2 = new People(,"关羽",);
People p3 = new People(,"刘备",); People[] PeoArr = new People[] { p1, p2, p3 };
Dictionary<string,People> DicPeo = PeoArr.ToDictionary(p => p.Name); //指定Key是Name属性
Console.WriteLine(DicPeo["张飞"].Id + DicPeo["张飞"].Name + DicPeo["张飞"].Age); //输出 1 张飞 20 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

4、ToLookup操作符

  ToLookup操作符可以将一个输入序列转换成一个ILookup<K,T>集合对象。ILookup与IDictionary<K,T>非常相似,只不过在Dictionary中一个键只能对应一个元素,而在ILookup<K,T>中,一个键可以对应一组元素(一个序列)。

5、SequenceEqual操作符

  SequenceEqual操作符用于判断两个序列是否相等。

  方法原型:

    public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second);
public static bool SequenceEqual<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second, IEqualityComparer<TSource> comparer);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
int[] ints2 = new int[] { , , }; Console.WriteLine(ints1.SequenceEqual(ints2)); //输出 True
ints2[] = ;
Console.WriteLine(ints1.SequenceEqual(ints2)); //输出False Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

6、First操作符

  First操作符用于返回输入序列的第一个元素或满足条件的第一个元素。

  方法原型:

    public static TSource First<TSource>(this IEnumerable<TSource> source);
public static TSource First<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  第二个方法多了一个委托,是再次筛选的,即第一个元素要令第二个委托为True才返回。

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
int i = ints1.Where(p => p > ).First();
Console.WriteLine(i); //输出 2
int j = ints1.Where(p => p > ).First(m => m > ); //输出3,First参数里的委托要求第一个大于2的元素
Console.WriteLine(j); Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

7、FirstOrDefault操作符

  FirstOrDefault操作符的使用与First操作符非常相似,只是在没有找到元素时,First操作符会抛出一个异常,而FirstOrDefault操作符会返回一个相关类型默认值元素。

  方法原型:

    public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source);
public static TSource FirstOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  第二个方法原型,增加了一个委托参数,该参数是进一步筛选用的。

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
//int i = ints1.Where(p => p > 4).First(); //此处会抛出异常,“序列中不包含任何元素”
//Console.WriteLine(i); int j = ints1.Where(p => p > ).FirstOrDefault();
Console.WriteLine(j); //输出0 可以看到在没有元素的时候,int类型返回0,其他类型也会返回默认值
int k = ints1.Where(p => p > ).FirstOrDefault(m => m > );
Console.WriteLine(k); //输出3 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

8、Last操作符

  Last操作符用于返回输入序列的最后一个元素或满足条件的最后一个元素。

  方法原型:

    public static TSource Last<TSource>(this IEnumerable<TSource> source);
public static TSource Last<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  第二个方法原型可以再次筛选。

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
int i = ints1.Where(p => p > ).Last(); //大于1的有2 3
Console.WriteLine(i); //输出 3 int j = ints1.Where(p => p > ).Last(m => m < );
Console.WriteLine(j); //输出 2 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

9、LastOrDefault操作符

  LastOrDefault操作符的使用与Last操作符类似,只是在没有找到元素时,Last操作符会抛出一个异常,而LastOrDefault会返回一个默认元素。

  方法原型:

    public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source);
public static TSource LastOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
int i = ints1.Where(p => p > ).LastOrDefault(); //大于4的元素没有
Console.WriteLine(i); //输出 0 int j = ints1.Where(p => p > ).LastOrDefault(m => m < );
Console.WriteLine(j); //输出 2 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

10、Single操作符

  Single操作符用于从一个只含有一个元素的输入序列中返回唯一的元素或者满足特定条件的唯一元素。如果输入序列中的元素个数为零或多于一个,Single操作符会抛出一个异常。

  方法原型:

    public static TSource Single<TSource>(this IEnumerable<TSource> source);
public static TSource Single<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  第二个方法原型,多了个委托,可以再传入条件筛选。

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { };
int i = ints1.Single();
Console.WriteLine(i); //输出10 int[] ints2 = new int[] { , , };
int j = ints2.Single(m => m > );
Console.WriteLine(j); //输出3 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

11、SingleOrDefault操作符

  SingleOrDefault操作符的使用与Single操作符非常相似,只是在没有找到元素时,Single操作符会抛出一个异常对象,而SingleOrDefault会返回一个默认值的元素。

  方法原型:

    public static TSource SingleOrDefault<TSource>(this IEnumerable<TSource> source);
public static TSource SingleOrDefault<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  第二个方法原型还是允许传入条件进一步筛选。

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { }; //没有元素
int i = ints1.SingleOrDefault();
Console.WriteLine(i); //输出 0 int[] ints2 = new int[] { , , };
int j = ints2.SingleOrDefault(m => m > );
Console.WriteLine(j); //输出0 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

12、ElementAt操作符

    ElementAt操作符用于返回输入序列中指定位置的元素。

    方法原型:

  public static TSource ElementAt<TSource>(this IEnumerable<TSource> source, int index);

    代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
int i = ints1.ElementAt();
Console.WriteLine(i); //输出 3 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

13、ElementAtOrDefault操作符

  ElementAtOrDefault操作符的使用与ElementAt操作符非常相似,只是在指定的位置索引值不合法的情况下。

  方法原型:

  public static TSource ElementAtOrDefault<TSource>(this IEnumerable<TSource> source, int index);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
int i = ints1.ElementAtOrDefault();
Console.WriteLine(i); //输出 0 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

14、Any操作符

   Any操作符用于判断一个输入序列中是否含有元素或者满足特定条件的元素。

  方法原型:

    public static bool Any<TSource>(this IEnumerable<TSource> source);
public static bool Any<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
bool b1 = ints1.Any();
Console.WriteLine(b1); //返回True 输入序列中包含元素 bool b2 = ints1.Any(p => p > ); //判断输入序列中是否包含大于4的元素
Console.WriteLine(b2); //输出False 输入序列中不包含小于4的元素 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

15、All操作符

   All操作符用于判断输入序列中的所有元素是否全部满足指定条件。

   方法原型:

  public static bool All<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints1 = new int[] { , , };
bool b = ints1.All(p => p > );
Console.WriteLine(b); //输出True 输入序列中的所有元素都大于0 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

16、Contains操作符

  Contains操作符用于判断输入序列中是否含有指定的元素。

   方法原型:

    public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value);
public static bool Contains<TSource>(this IEnumerable<TSource> source, TSource value, IEqualityComparer<TSource> comparer);

  第二个方法原型支持自定义比较方法。

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , };
bool b = ints.Contains();
Console.WriteLine(b); //输出 True Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

17、Count操作符

  Count操作符用于获取输入序列的元素个数或者满足某个特定条件的元素个数。

  方法原型:

    public static int Count<TSource>(this IEnumerable<TSource> source);
public static int Count<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

   代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , };
int count1 = ints.Count();
Console.WriteLine(count1); //输出3 int count2 = ints.Count(p => p > ); //求大于1的元素个数
Console.WriteLine(count2); //输出1 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

18、LongCount操作符

  LongCount操作符的使用与Count操作符基本相同,不同的是Count操作符以int类型返回元素个数,而LongCount以Long类型返回元素个数。

  方法原型:

    public static long LongCount<TSource>(this IEnumerable<TSource> source);
public static long LongCount<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , };
long count1 = ints.LongCount();
Console.WriteLine(count1); //输出3 long count2 = ints.LongCount(p => p > ); //求大于1的元素个数
Console.WriteLine(count2); //输出1 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

19、Sum操作符

   Sum操作符用于计算输入序列中所有元素的数值总和,使用Sum操作符时需要注意,输入序列中的元素类型只能是int、long、double、或者decimal等数值型数据类型。

   方法原型:

Linq to BBJECT之非延时标准查询操作符
        public static decimal? Sum(this IEnumerable<decimal?> source);
public static decimal Sum(this IEnumerable<decimal> source);
public static double? Sum(this IEnumerable<double?> source);
public static double Sum(this IEnumerable<double> source);
public static float? Sum(this IEnumerable<float?> source);
public static float Sum(this IEnumerable<float> source);
public static int? Sum(this IEnumerable<int?> source);
public static int Sum(this IEnumerable<int> source);
public static long? Sum(this IEnumerable<long?> source);
public static long Sum(this IEnumerable<long> source);
public static decimal? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
public static decimal Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
public static double? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
public static double Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
public static float? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
public static float Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
public static int? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
public static int Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
public static long? Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
public static long Sum<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
Linq to BBJECT之非延时标准查询操作符

   代码示例:

Linq to BBJECT之非延时标准查询操作符
    class Program
{
static void Main(string[] args)
{
int[] ints = new int[] { , , };
int sum1 = ints.Sum();
Console.WriteLine(sum1); //输出 6 People p1 = new People(, "张飞", );
People p2 = new People(, "关羽", );
People p3 = new People(, "刘备", );
List<People> listP = new List<People>();
listP.Add(p1);
listP.Add(p2);
listP.Add(p3);
int AgeCount = listP.Sum(s => s.Age);
Console.WriteLine(AgeCount); //输出63 Console.ReadKey();
}
} public class People
{
public People(int id, string name, int age)
{
this.Id = id;
this.Name = name;
this.Age = age;
} public int Id
{
get;
set;
} public string Name
{
get;
set;
} public int Age
{
get;
set;
}
}
Linq to BBJECT之非延时标准查询操作符

20、Min操作符

  Min操作符用于获取输入序列中所有元素的最小值,使用Min操作符需要注意,输入序列的元素类型只能是int、long、double、decimal等数值型数据类型或者是实现了IComparable<T>接口的数据类型。

  方法原型:

Linq to BBJECT之非延时标准查询操作符
    public static decimal? Min(this IEnumerable<decimal?> source);
public static decimal Min(this IEnumerable<decimal> source);
public static double? Min(this IEnumerable<double?> source);
public static double Min(this IEnumerable<double> source);
public static float? Min(this IEnumerable<float?> source);
public static float Min(this IEnumerable<float> source);
public static int? Min(this IEnumerable<int?> source);
public static int Min(this IEnumerable<int> source);
public static long? Min(this IEnumerable<long?> source);
public static long Min(this IEnumerable<long> source);
public static TSource Min<TSource>(this IEnumerable<TSource> source);
public static decimal? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
public static decimal Min<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
public static double? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
public static double Min<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
public static float? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
public static float Min<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
public static int? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
public static int Min<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
public static long? Min<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
public static long Min<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
public static TResult Min<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
Linq to BBJECT之非延时标准查询操作符

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , };
int min1 = ints.Min();
Console.WriteLine(min1); //输出 1 People p1 = new People(, "张飞", );
People p2 = new People(, "关羽", );
People p3 = new People(, "刘备", );
List<People> listP = new List<People>();
listP.Add(p1);
listP.Add(p2);
listP.Add(p3);
int AgeMin = listP.Min(s => s.Age);
Console.WriteLine(AgeMin); //输出 20 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

21、Max操作符

  Max操作符用于获取输入序列中所有元素的最大值。与Min的用法基本相同

  方法原型:

Linq to BBJECT之非延时标准查询操作符
    public static decimal? Max(this IEnumerable<decimal?> source);
public static decimal Max(this IEnumerable<decimal> source);
public static double? Max(this IEnumerable<double?> source);
public static double Max(this IEnumerable<double> source);
public static float? Max(this IEnumerable<float?> source);
public static float Max(this IEnumerable<float> source);
public static int? Max(this IEnumerable<int?> source);
public static int Max(this IEnumerable<int> source);
public static long? Max(this IEnumerable<long?> source);
public static long Max(this IEnumerable<long> source);
public static TSource Max<TSource>(this IEnumerable<TSource> source);
public static decimal? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
public static decimal Max<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
public static double? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
public static double Max<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
public static float? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
public static float Max<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
public static int? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
public static int Max<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
public static long? Max<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
public static long Max<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
public static TResult Max<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector);
Linq to BBJECT之非延时标准查询操作符

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , };
int max1 = ints.Max();
Console.WriteLine(max1); //输出 3 People p1 = new People(, "张飞", );
People p2 = new People(, "关羽", );
People p3 = new People(, "刘备", );
List<People> listP = new List<People>();
listP.Add(p1);
listP.Add(p2);
listP.Add(p3);
int AgeMax = listP.Max(s => s.Age);
Console.WriteLine(AgeMax); //输出 22 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

22、Average操作符

  Average操作符用于计算输入序列中全体元素的平均值。同样,输入序列中的元素类型值能够是int、long、double、decimal等数值类型数据。

  方法原型:

Linq to BBJECT之非延时标准查询操作符
    public static decimal? Average(this IEnumerable<decimal?> source);
public static decimal Average(this IEnumerable<decimal> source);
public static double? Average(this IEnumerable<double?> source);
public static double Average(this IEnumerable<double> source);
public static float? Average(this IEnumerable<float?> source);
public static float Average(this IEnumerable<float> source);
public static double? Average(this IEnumerable<int?> source);
public static double Average(this IEnumerable<int> source);
public static double? Average(this IEnumerable<long?> source);
public static double Average(this IEnumerable<long> source);
public static decimal? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal?> selector);
public static decimal Average<TSource>(this IEnumerable<TSource> source, Func<TSource, decimal> selector);
public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double?> selector);
public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, double> selector);
public static float? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float?> selector);
public static float Average<TSource>(this IEnumerable<TSource> source, Func<TSource, float> selector);
public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int?> selector);
public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, int> selector);
public static double? Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long?> selector);
public static double Average<TSource>(this IEnumerable<TSource> source, Func<TSource, long> selector);
Linq to BBJECT之非延时标准查询操作符

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , };
double ave1 = ints.Average();
Console.WriteLine(ave1); //输出 2 People p1 = new People(, "张飞", );
People p2 = new People(, "关羽", );
People p3 = new People(, "刘备", );
List<People> listP = new List<People>();
listP.Add(p1);
listP.Add(p2);
listP.Add(p3);
double AgeAve = listP.Average(s => s.Age);
Console.WriteLine(AgeAve); //输出 21 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符

23、Aggregate操作符

  Aggregate操作符用于在输入序列的所有元素上累积执行某个特定额方法。

  方法原型:

    public static TSource Aggregate<TSource>(this IEnumerable<TSource> source, Func<TSource, TSource, TSource> func);
public static TAccumulate Aggregate<TSource, TAccumulate>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func);
public static TResult Aggregate<TSource, TAccumulate, TResult>(this IEnumerable<TSource> source, TAccumulate seed, Func<TAccumulate, TSource, TAccumulate> func, Func<TAccumulate, TResult> resultSelector);

  代码示例:

Linq to BBJECT之非延时标准查询操作符
        static void Main(string[] args)
{
int[] ints = new int[] { , , ,};
int i = ints.Aggregate((p,next) => p + next); //p代表当前元素,next代表下一个元素
Console.WriteLine(i); //输出10 int j = ints.Aggregate(,(p, next) => p + next); //全部加完再加 15
Console.WriteLine(j); //输出11 int k = ints.Aggregate(, (p, next) => p * next); //全部乘完再加 120
Console.WriteLine(k); //输出30 Console.ReadKey();
}
Linq to BBJECT之非延时标准查询操作符
 
 

Linq to BBJECT之非延时标准查询操作符的更多相关文章

  1. Linq to Object之非延迟标准查询操作符

    非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用. 1.ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组. 方法原型: ...

  2. Linq to OBJECT延时标准查询操作符

    1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...

  3. Linq to Object 延迟标准查询操作符

    1.Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果.2.Select  操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中 ...

  4. LINQ标准查询操作符详解&lpar;转&rpar;

     一. 关于LINQ       LINQ 英文全称是“Language-Integrated Query”,中文为“语言集成查询”,它是微软首席架构师.Delphi 之父和C# 之父——Anders ...

  5. Linq 标准查询操作符三

    本文介绍了LINQ标准查询操作符.没有这些操作符,LINQ就不会存在.本文为理解这些操作符的功能提供了很好的基础.了解它们将会很有帮助,因为LINQ的各种Provider都是基于这些操作符来完成各自丰 ...

  6. LINQ 标准查询操作符

    本文介绍了LINQ标准查询操作符.没有这些操作符,LINQ就不会存在.本文为理解这些操作符的功能提供了很好的基础.了解它们将会很有帮助,因为LINQ的各种Provider都是基于这些操作符来完成各自丰 ...

  7. LINQ入门教程之各种标准查询操作符(一)

    好久之前就想系统的学习下LINQ,好久之前…… 本篇文章主要介绍LINQ等的标准查询操作符,内容取自<LINQ高级编程>,后续还会介绍LINQ to XML ,LINQ to SQL. L ...

  8. LINQ入门教程之各种标准查询操作符(二)

    续上篇LINQ入门教程之各种标准查询操作符(一) LINQ入门教程之各种标准查询操作符(二) 7.  聚合操作符 8.  集合操作符 9.  生成操作符 #region 生成操作符 即从现有序列的值中 ...

  9. 《C&num;本质论》读书笔记(14)支持标准查询操作符的集合接口

      14.2.集合初始化器 使用集合初始化器,程序员可以采用和数组相似的方式,在集合的实例化期间用一套初始的成员来构造这个集合. 如果没有集合初始化器,就只有在集合实例化后才能显示添加到集合中--例如 ...

随机推荐

  1. Vue&period;js之v-if

    ---恢复内容开始--- 首先,在跟着api做的时候,要把v-if包裹在Vue对应的el里面,重要的事情说三遍. html: <div id="vif"> <di ...

  2. 浅析手机抓包方法实践&lpar;zt&rpar;

    原文:http://drops.wooyun.org/tips/12467 0x00 摘要 在移动逆向分析以及 App 开发的时候,总会需要对其网络行为进行监控测试,本文总结一些抓包思路,并对其使用方 ...

  3. &lbrack;BZOJ1089&rsqb;&lbrack;SCOI2003&rsqb;严格n元树&lpar;递推&plus;高精度&rpar;

    题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1089 分析: 第一感觉可以用一个通式求出来,但是考虑一下很麻烦,不好搞的.很容易发现最 ...

  4. Emacs简易教程

    Emacs简易教程阅读: 命令: $emacs 进入之后,输入: C-h t 这里,C-h表示按住[Ctrl]键的同时按h ####### 20090620 *退出: 输入“C-x C-c” *撤销: ...

  5. form的onsubmit事件--表单提交前的验证最佳实现方式

    今天遇到了一个问题,页面中include了很多的公共页面(都是没有form的),并且里面好多的地方都是自行提交的(页面中加入一个type=“submit”域,然后js中写入sumbit.click来执 ...

  6. 容器的end&lpar;&rpar;方法

    容器的end()方法,返回一个迭代器,需要注意:这个迭代器不指向实际的元素,而是表示末端元素的下一个元素,这个迭代器起一个哨兵的作用,表示已经处理完所有的元素. 因此,在查找的时候,返回的迭代器,不等 ...

  7. 语言模型(N-Gram)

    问题描述:由于公司业务产品中,需要用户自己填写公司名称,而这个公司名称存在大量的乱填现象,因此需要对其做一些归一化的问题.在这基础上,能延伸出一个预测用户填写的公司名是否有效的模型出来. 目标:问题提 ...

  8. 1&period;Python&lowbar;字符串&lowbar;常用办法总结

    明确:对字符串的操作方法都不会改变原来字符串的值. 1.去掉空格和特殊符号 name.strip() 去掉空格和换行符 name.strip("xx") 去掉某个字符串 name. ...

  9. Dart Map&lt&semi;&gt&semi; 添加 元素

    Map<String, WidgetBuilder> routesList() { Map<String, WidgetBuilder> re = new Map<Str ...

  10. SQL 游标的存储过程示例

    注意事项:两个小数运算的时候都是一种类型! USE [FoodMedicineExam] GO /****** Object: StoredProcedure [dbo].[P_DrugExamAna ...