webForumDet fria alternativet

Jämföra listor

.NET

3 svar · 497 visningar · startad av CatZ

Medlem sedan jan. 20022 440 inlägg
Frågan#1

Jag har två listor som består av bools och vill enkelt kunna jämföra innehållet i listorna med varandra för att se om någonting har ändrats och baserat på resultat sant/falskt utföra åtgärd.

Hur gör jag smidigast för att åstadkomma detta?

Medlem sedan jan. 20022 440 inlägg
#2

Någon som har några synpunkter på

public static bool Equals<T>(List<T> list1, List<T> list2)
{
	bool isEqual = list1.Count == list2.Count;

	if (isEqual)
	{
		for (int i = 0, nCount = list1.Count; nCount > i; i++)
		{

			if (!list1[i].Equals(list2[i]))
			{
				isEqual = false;
				break;
			}
		}
	}

	return isEqual;
}
Medlem sedan jan. 20012 204 inlägg
#3

Kanske ger bättre prestandard då man slipper definera isEqual

public static bool Equals<T>(List<T> list1, List<T> list2)
{
	if (list1.Count == list2.Count)
	{
		for (int i = 0, nCount = list1.Count; nCount > i; i++)
		{
			if (!list1[i].Equals(list2[i]))
			{
				return false;
			}
		}
		return true;
	}
	return false;
}
Medlem sedan jan. 20022 440 inlägg
#4

Mycket riktigt, det gjorde faktiskt en del på prestandan, inte supermycket men all cpu tid man kan spara... :)

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)