Khushi1103 Ответов: 2

Как преобразовать приведенный ниже цикл foreach в оператор linq?


int size=0;

foreach (char c in s)             
{                 
    int intc = Convert.ToInt32(c.ToString());                 
    Size = Size + intc;             
}


Что я уже пробовал:

Я пытался
размер = С. Вызова метода toList().По каждому элементу(х =&ГТ; { преобразование.ToInt32 (x) + размер ; });
который не работает и дает ошибку.

2 Ответов

Рейтинг:
2

Graeme_Grant

Вот несколько вариантов решения Картика:

string s = "12345";
int size = s.Sum(x => x - '0');
string s = "12345";
int size = s.Sum(x => CharUnicodeInfo.GetDecimalDigitValue(x));
Оба снимают все боксерские операции... ;)


Рейтинг:
19

Karthik_Mahalingam

int size = 0;
      string s = "12345";
      size= s.Sum(k => Convert.ToInt32(k.ToString()));


относиться LINQ Sum[^]

Исправление вашего кода

int size = 0;
       string s = "12345";
       s.ToList().ForEach(x => size += Convert.ToInt32(x.ToString()));
       // ForEach will not return any data, its Void
        // now size will have 15