zoukankan      html  css  js  c++  java
  • asp.net 获得数组里面的交集,并集等

    功能: 主要是取得2個Collection 裏,相同、相異、聯集的部份
    必需加入的dll: Iesi.Collections.dll
    範例:
     using System;  
    2  using Iesi.Collections.Generic;  
    3  
    4  public partial class TestPage_SetDemoPage : System.Web.UI.Page {  
    5     protected void Page_Load(object sender, EventArgs e) {  
    6         ISet<string> Girls = new HashedSet<string>();  
    7         Girls.Add("Christine");  
    8         Girls.Add("Eva");  
    9         Girls.Add("Jean");  
    10         Girls.Add("Novia");  
    11         Girls.Add("Winnie");  
    12  
    13         ISet<string> PMs = new HashedSet<string>();  
    14         PMs.Add("Eva");  
    15         PMs.Add("Novia");  
    16         PMs.Add("Vincent");  
    17         PMs.Add("Williams");  
    18         PMs.Add("Winnie");  
    19  
    20         ISet<string> GirlPMs = Girls.Intersect(PMs);          
    21         Response.Write("是女生且是PM: <br />");  
    22         foreach (string s in GirlPMs) {  
    23             Response.Write(s + "<br />");  
    24         }  
    25  
    26         Response.Write("<br />");  
    27         ISet<string> GirlNotPMs = Girls.Minus(PMs);  
    28         Response.Write("是女生且不是PM: <br />");  
    29         foreach (string s in GirlNotPMs) {  
    30             Response.Write(s + "<br />");  
    31         }  
    32  
    33         Response.Write("<br />");  
    34         ISet<string> GirlOrPMs = Girls.Union(PMs);  
    35         Response.Write("是女生或是PM: <br />");  
    36         foreach (string s in GirlOrPMs) {  
    37             Response.Write(s + "<br />");  
    38         }  
    39  
    40         Response.Write("<br />");  
    41         ISet<string> NotMatch = Girls.ExclusiveOr(PMs);  
    42         Response.Write("是女生但不是PM,或是PM但不是女生: <br />");  
    43         foreach (string s in NotMatch) {  
    44             Response.Write(s + "<br />");  
    45         }  
    46     }  
    47 }  
    補充:(该方法支持.net2.0)
    1. 如果順序是重要的,那 HashedSet 可以改成 SortedSet
    2. 如果用SortedSet, 集合內的物件必需繼承IComparable介面
    3. 更詳盡的介紹可參考 Add Support for "Set" Collections to .NET
    4.Iesi.Collection.dll 可在 NHibernate 專案裏找到, 裏面的版本加上對泛型的支援
    net3.0以上版本直接使用linq就可以了

    C# code
    var Girls = new[] {"Christine", "Eva", "Jean", "Novia", "Winnie"}; var PMs = new[] {"Eva", "Novia", "Vincent", "Williams", "Winnie"}; // 是 Girl 且是 PM (交集) foreach (var s in Girls.Intersect(PMs)) { Console.WriteLine(s } Console.WriteLine();
  • 相关阅读:
    unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
    Go的学习笔记之Channel发送和接收
    聊聊 PC 端自动化最佳方案
    一文彻底搞懂快速幂(原理实现、矩阵快速幂)
    一次core.<number> 文件占满磁盘空间的处理过程
    博文目录
    备忘录:C#获取微信小程序的云数据库中数据
    T-SQL——关于跨库连接查询
    .NET异步程序设计——给线程传递数据
    自研 Pulsar Starter:winfun-pulsar-spring-boot-starter
  • 原文地址:https://www.cnblogs.com/weichao975/p/1786119.html
Copyright © 2011-2022 走看看