Как я могу исправить эти ошибки в C #? - PullRequest
0 голосов
/ 05 сентября 2011

Ну вот код, с которым у меня возникают ошибки:

this.terminchar = Convert.ToChar(8080);    
List<string> source = new List<string>(this.base64Decode(parse_value).Split(new char[] { this.terminchar }));

if ((source) % 2) == 0)
{
  for (int i = 0; i < source; i++)
  {
    this.keys.Add(source[i], source[++i]);
  }
}

Я получаю 3 ошибки с этим кодом, первая:

Ошибка 1 Оператор '<' не может быть применен к операндам типа 'int' и 'System.Collections.Generic.List' </p>

Второй:

Ошибка 2 Оператор «%» не может быть применен к операндам типа «System.Collections.Generic.List» и «int»

Третий:

Ошибка 3 Неправильный термин выражения '=='

Я довольно новичок в C #, и это исходный код моих друзей, на который я просто смотрю, чтобы понять синтаксис, но я понятия не имею, что делать. Спасибо за любую помощь, спасибо.

Ответы [ 5 ]

6 голосов
/ 05 сентября 2011

Вы, вероятно, ищете свойство .Count в обоих случаях.

Поэтому используйте source.Count.

3 голосов
/ 05 сентября 2011

Вы выполняете некоторые операции со списком. Я совершенно уверен, вы должны ваши строки следующим образом ...

if ((source.Count) % 2) == 0)  

и

for (int i = 0; i < source.Count; i++)

вместо

1 голос
/ 05 сентября 2011

очевидно, вы можете использовать там для цикла. используйте i<source.Count, а также (source.Count) % 2 вместо

0 голосов
/ 05 сентября 2011

source is List<string> - контейнер для строк, см. MSDN .

Операторы < и % могут применяться к int.Так что в вашем коде чего-то не хватает.

0 голосов
/ 05 сентября 2011

Вам нужно использовать .Count на источнике, чтобы получить количество элементов в списке

List<string> source = new List<string>(this.base64Decode(parse_value).Split(new    char[] { Convert.ToChar(8080) }));
string Command = source[0];
source.RemoveAt(0);
if ((source.Count) % 2) == 0)
{
    for (int i = 0; i < source.Count; i++)
    {
        this.keys.Add(source[i], source[++i]);
    }
}
...