亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

.NET是否可以檢查List a是否包含List b中的所有項目?

.NET是否可以檢查List a是否包含List b中的所有項目?

慕哥9229398 2019-11-12 14:41:41
我有以下方法:namespace ListHelper{    public class ListHelper<T>    {        public static bool ContainsAllItems(List<T> a, List<T> b)        {            return b.TrueForAll(delegate(T t)            {                return a.Contains(t);            });        }    }}其目的是確定一個列表是否包含另一個列表的所有元素。在我看來,類似的東西已經內置到.NET中了,是這樣嗎?我是否在復制功能?編輯:抱歉我沒有事先聲明我正在Mono版本2.4.2上使用此代碼。
查看完整描述

3 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

如果您使用的是.NET 3.5,則很簡單:


public class ListHelper<T>

{

    public static bool ContainsAllItems(List<T> a, List<T> b)

    {

        return !b.Except(a).Any();

    }

}

這個檢查是否有任何元件在b其不在a-然后反轉的結果。


請注意,使該方法泛型而不是使類更傳統,并且沒有理由要求List<T>代替IEnumerable<T>-因此,這可能是更可取的:


public static class LinqExtras // Or whatever

{

    public static bool ContainsAllItems<T>(this IEnumerable<T> a, IEnumerable<T> b)

    {

        return !b.Except(a).Any();

    }

}


查看完整回答
反對 回復 2019-11-12
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

您也可以使用其他方式。覆蓋等于并使用它


public bool ContainsAll(List<T> a,List<T> check)

{

   list l = new List<T>(check);

   foreach(T _t in a)

   {

      if(check.Contains(t))

      {

         check.Remove(t);

         if(check.Count == 0)

         {

            return true;

         }

      }

      return false;

   }

}


查看完整回答
反對 回復 2019-11-12
  • 3 回答
  • 0 關注
  • 874 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號