У меня возникла проблема с моей работой, которая, надеюсь, сводится к следующему: у меня есть два List<int>
s, и я хочу видеть, что любой из int
в ListA
равен любому int
в ListB
. (Они могут быть массивами, если это облегчает жизнь, но я думаю, что List<>
имеет встроенную магию, которая могла бы помочь.) И я уверен, что это проблема, связанная с LINQ, но здесь я работаю в версии 2.0.
Мое решение до сих пор было foreach
через ListA, а затем foreach
через ListB,
foreach (int a in ListA)
{
foreach (int b in ListB)
{
if (a == b)
{
return true;
}
}
}
который был на самом деле довольно гладким, когда они были трижды длинными, но теперь они длинны 200, и они часто не совпадают, поэтому мы получаем худший случай сравнений N ^ 2. Даже 40 000 сравнений идут довольно быстро, но я думаю, что я мог бы что-то упустить, так как N ^ 2 кажется довольно наивным для этой конкретной проблемы.
Спасибо!