Список .Foreach не ссылается на действие hashCode.addC#

Место общения программистов C#
Ответить
Anonymous
 Список .Foreach не ссылается на действие hashCode.add

Сообщение Anonymous »

В C#, используя метод структуры hashcode и list .foreach , показывает поведение, которое я не могу объяснить:
Две приведенные ниже фрагменты не возвращают один и тот же результат:

PrettyPrint-Override ">var hashCodeLambda = new HashCode();
strings.ForEach(str => hashCodeLambda.Add(str));
< /code>

не работает: < /li>
< /ul>
var hashCodeDelegate = new HashCode();
strings.ForEach(hashCodeDelegate.Add);

Кто-нибудь знает, почему?List strings = ["test1", "test2"];

var hashCodeLambda = new HashCode();
var hashCodeLoop = new HashCode();

strings.ForEach(str => hashCodeLambda.Add(str));
foreach (string str in strings)
{
hashCodeLoop.Add(str);
}
Console.WriteLine($"Expected: {hashCodeLambda.ToHashCode()} / {hashCodeLoop.ToHashCode()}");

var hashCodeDelegate = new HashCode();
strings.ForEach(hashCodeDelegate.Add);
Console.WriteLine($"Unexpected: {hashCodeDelegate.ToHashCode()}");
Console.WriteLine($"Empty hashcode: {new HashCode().ToHashCode()}");
< /code>
Пример вывода: < /p>
Expected: -952326020 / -952326020
Unexpected: 2034223959
Empty hashcode: 2034223959


Подробнее здесь: https://stackoverflow.com/questions/797 ... hcode-addt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»