zoukankan      html  css  js  c++  java
  • ToArray、ToList、ToDictionary、ToLookup、OfType

    #region using
    using System;
    using System.Data;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Text;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Collections.Generic;
    using System.Collections;
    #endregion

    public partial class _Default : System.Web.UI.Page 
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            #region 用ToArray()将查询结果转化为数组
            Response.Write("<hr>用ToArray将查询结果转化位数组<br>");
            var students = from student in GetStudents()
                           orderby student.Age
                           select student.Name;
            var nameArray = students.ToArray();
            foreach (var name in nameArray)
            {
                Response.Write(string.Format("<span class='result'>{0}</span>", name));
            }
            #endregion 

            #region 用ToList()将查询结果转化为List集合
            Response.Write("<hr>用ToList()将查询结果转化为List集合<br>");
            var students1 = from student in GetStudents()
                           where student.Age>21
                           orderby student.Age
                           select student.Name;
            var nameArray1 = students1.ToList();
            nameArray1.Add("newlist");
            foreach (var name in nameArray1)
            {
                Response.Write(string.Format("<span class='result'>{0}</span>", name));
            }
            #endregion 

            #region 用ToDictionary()将查询结果转化为Dictionary
            Response.Write("<hr>用ToDictionary()将查询结果转化为Dictionary<br>");
            var studentDict = GetStudents().ToDictionary(student => student.Name);
            var Y = studentDict["YOUNG"];
            Response.Write(string.Format("<span class='result'>YOUNG:{0},{1},{2}</span>", Y.Name, Y.Age, Y.Language));
     
              ToDictionary可以传两个lambada表达式,第一个是Key,第二个就是Value。
       //加载XML文件
        XDocument xdoc = XDocument.Load(fileName);
        XElement root = xdoc.Element("message");
    
      //读取XML内容
       messages = root.Elements("add")
        .ToDictionary(
            key => key.Attribute("key").Value,
            value => value.Attribute("value").Value
        );
     
            #endregion 

            #region 用OfType过滤查询结果中的类型
            Response.Write("<hr>用OfType过滤查询结果中的类型<br>");
            object[] objects = { 1, "love",GetStudents()[1], 2.1, null, GetStudents()[3],"young"};
            var students2 = objects.OfType<Student>();
            foreach (var student in students2)
            {
                Response.Write(string.Format("<span class='result'>{0}</span>", student.Name));
            }
            #endregion
        }

        #region 构造一个学生集合体
        private List<Student> GetStudents()
        {
            List<Student> students = new List<Student> 
                 new Student{ Name="YOUNG", Age=25, Language="Chinese"},
                 new Student{ Name="JESSIE", Age=21, Language="Scotland"},
                 new Student{ Name="KELLY", Age=18, Language="English"},
                 new Student{ Name="JUNE", Age=20, Language="English"},
                 new Student{ Name="ADRIAN", Age=22, Language="Italy"},
                 new Student{ Name="BRUCE", Age=17, Language="Scotland"},
                 new Student{ Name="BRANT", Age=30, Language="Germany"},
                 new Student{ Name="BEN", Age=25, Language="Chinese"}
            };
            return students;
        }
        #endregion
    }

    #region 学生类
    class Student
    {
        public int Age { get; set; }
        public string Name { get; set; }
        public string Language { get; set; }
    }
    #endregion

    显示结果
     
    ToDictionary() 不会处理重复键,该用 ToLookup()来处理重复键 来解决
     
    var data = new[]{
                Tuple.Create("001", "James"),
                Tuple.Create("002", "Linda"),
                Tuple.Create("003", "Frank"),
                Tuple.Create("004", "Jack"),
                Tuple.Create("002", "Rose"),
                Tuple.Create("001", "Lynn"),
                Tuple.Create("008", "Luke")
            };

    var dict = data.ToLookup(t => t.Item1, t => t.Item2)
                .ToDictionary(t => t.Key, t => t.First());
     
  • 相关阅读:
    jenkins+robot_framework的安装与邮件配置
    kali最新版中文乱码破解
    Kali系统安装详细步骤
    ADK安装步骤
    Newman跑接口脚本
    Android手机APP测试之环境搭建
    pytest+allre框架搭建
    Android手机测试环境搭建
    adb电脑桥梁手机步骤以及操作
    Android SDK的安装与环境变量配置
  • 原文地址:https://www.cnblogs.com/wyongqi/p/7685278.html
Copyright © 2011-2022 走看看