Пример #1
0
        private static void Main()
        {
            var list = new List<int>();
            list.Add(1);
            list.Add(2);
            list.Add(3);
            Console.WriteLine("Sum = {0} ", list.SumElements<int>());
            Console.WriteLine("Product = {0} ", list.ProductElements<int>());
            Console.WriteLine("Min = {0} ", list.MinElement<int>());
            Console.WriteLine("Max = {0} ", list.MinElement<int>());
            Console.WriteLine("Average = {0} ", list.AverageCol<int>());

            Console.WriteLine(new string('*', 30));

            IEnumerable<double> array = new[] { 1.2, 3.4, 5.6 };

            Console.WriteLine("Sum = {0} ", array.SumElements<double>());
            Console.WriteLine("Product = {0:F2} ", array.ProductElements<double>());
            Console.WriteLine("Min = {0} ", array.MinElement<double>());
            Console.WriteLine("Max = {0} ", array.MaxElement<double>());
            Console.WriteLine("Average = {0} ", array.AverageCol<double>());
        }
        public void TestMinElement()
        {
            Assert.Throws<ArgumentNullException>(() => { IEnumerableExtensions.MinElement<string, int>(null, null); });
            Assert.Throws<ArgumentNullException>(() => { IEnumerableExtensions.MinElement<string, int>(new[] { "" }, null); });
            Assert.Throws<ArgumentNullException>(() => { IEnumerableExtensions.MinElement<string, int>(null, str => str.Length); });
            Assert.Throws<InvalidOperationException>(() => IEnumerableExtensions.MinElement<string, int>(new string[0], str => str.Length));

            var input = new[] { "one", "two", "three", "four" };
            Assert.AreEqual("one", input.MinElement(str => str.Length));
            Assert.AreEqual("three", input.MinElement(str => -str.Length));
            Assert.AreEqual("three", input.MinElement(str => (int) str[1]));
            Assert.AreEqual("two", input.MinElement(str => -(int) str[0]));
        }