Eine grundlegende Lösung würde wie folgt aussehen:Finding, wenn eine Zielnummer die Summe von zwei Zahlen in einem Array über LINQ ist
bool sortTest(int[] numbers, int target)
{
Array.Sort(numbers);
for(int i = 0; i < numbers.Length; i++)
{
for(int j = numbers.Length-1; j > i; j--)
{
if(numbers[i] + numbers[j] == target)
return true;
}
}
return false;
}
Jetzt ganz neu Ich bin zu LINQ, aber das ist das, was ich geschrieben habe, so weit:
var result = from num in numbers
where numbers.Contains(target -num)
select num;
if (result.Count() > 0)
return true;
return false;
Jetzt renne ich in ein Problem das folgende Beispiel gegeben:
Array: 1, 2, 4, 5, 8
Ziel: 16
Es sollte false zurückgeben, aber es fängt 16-8 = 8. Also, wie gehe ich davon aus, dass es sich im contains check nicht merkt? Oder kann ich jedes Mal ein zweites Array innerhalb der Abfrage erstellen, das nicht die Nummer enthält, mit der ich arbeite (wodurch das Problem gelöst wird)?
Vielen Dank im Voraus.
Nizza :) Sie scheinen viel wacher als ich heute Morgen +1 – leppie
Eine Sache: Was passiert, wenn das Array zwei Zahlen enthält, die gleich sind und mit dem Ziel aufsummieren würde? Ex: Das Array enthielt 2 8 ist und das Ziel war 16. Anders als das war Ihre Aussage super und half mir sehr viel. –
Ja, es gibt auch jedes passendes Paar zweimal: das heißt. 4 + 8 = 12; 8 + 4 = 12. Ich bin nur eine noch bessere Antwort, um herauszufinden,. – pdr