Linq操作ArrayList

ArrayList实现了System.Collections空间下的IEnumerable接口,这个接口是非泛型的。如果要使用LINQ,必须声明枚举变量的类型,依赖Cast查询运算符转换枚举类型。

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;

namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            var arrayList = GetArrayList();

            //查询表达式
            var query = from Student student in arrayList
                        where student.Scores[0] > 95
                        select student;

            //方法调用
            var query2 = arrayList.Cast<Student>().Where(x => x.Scores[0] > 95);
        }

        static ArrayList GetArrayList()
        {
            ArrayList arrList = new ArrayList { new Student
                {
                    FirstName = "Svetlana",
                    LastName = "Omelchenko",
                    Scores = new int[] { 98, 92, 81, 60 }
                }, new Student
                {
                    FirstName = "Claire",
                    LastName = "O’Donnell",
                    Scores = new int[] { 75, 84, 91, 39 }
                }, new Student
                {
                    FirstName = "Claire",
                    LastName = "O’Donnell",
                    Scores = new int[] { 75, 84, 91, 39 }
                },new Student
                {
                    FirstName = "Cesar",
                    LastName = "Garcia",
                    Scores = new int[] { 97, 89, 85, 82 }
                }};

            return arrList;
        }
    }

    public class Student
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int[] Scores { get; set; }
    }
}

 

 

posted @ 2020-04-15 20:22  山上一边边  阅读(253)  评论(0编辑  收藏  举报