[英]Find “not the same” elements in two arrays
我有兩個整數列表( List<int>
)。 它們包含相同的元素,但列表1包含不在列表2中的元素。
如何查找列表1中哪些元素不在列表2中。
謝謝 :)
PS。 郎是c#
您可以使用IEnumerable.Except
:
list1.Except(list2);
new HashSet<int>(l1).ExceptWith(l2);
一個非常簡單的解決方
HashSet<int> theSet1 = new HashSet<int>(List1);
theSet1.ExceptWith(List2);
為簡單起見,您可以使用Contains方法並檢查一個不包含另一個元素的列表:
for (int i = 0; i < list2.Count; ++i)
{
if (!list1.Contains(list2[i]) //current element is not in list 1
//some code
}
如果你的解決方案是第一個列表包含第二個和你在第一個列表后添加的onli記錄,也許這將是有用的
public static int DokleSuIsti(IList<string> prevzemNow, IList<string> prevzemOld)
{
int dobroja = 0;
int kolikohinaje;
if (prevzemOld.Count() < prevzemNow.Count())
{
kolikohinaje = prevzemOld.Count();
}
else
{
kolikohinaje = prevzemNow.Count();
}
for (int i = 0; i < kolikohinaje; i++)
{
if (!Object.Equals(prevzemNow[i], prevzemOld[i]))
{
dobroja = i;
return dobroja;
}
dobroja = i;
}
return dobroja;
}
之后,您可以使用該int作為步行通過您的Ilist的起點
如果他們沒有排序或其他什么,你將很難。
O(N ^ 2)算法(一個簡單的,愚蠢的循環)或其他數據結構,告訴我你更喜歡哪個。
或者,您當然可以通過排序來更改源數據,我認為這不是一個選項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.