Не могу добавить значение в список в C # - PullRequest
1 голос
/ 02 ноября 2009

Я хотел бы добавить значение к struct

if (!existISDNteilnehmer(split))
{
    isdnObjs.Add(new ISDN() { name = split, number = "", 
                        channels = new List<string>()});
}                
ISDN? actualISDN = getISDN(split);

if (index < ISDN_teilnehmer.Count())
{
     var numbers = 
          from num in xISDN.XPathSelectElements("//member[name='number']")
               where num.IsAfter(xISDN) &&
                     num.IsBefore(ISDN_teilnehmer.ElementAt(index))
          select num;

     foreach (var nums in numbers)
     {
          if (nums.Element("name").Value == "number")
          {
               var nummer = nums.XPathSelectElements("value");
               var part_nummer = 
                   from n in nummer
                   select n.Value;
               //string temp = part_nummer;

               actualISDN.Value.number = part_nummer;

           }
     }

Все считывается правильно, и правильный номер сохраняется в part_nummer.

Теперь я хочу добавить номер в список с помощью actualISDN.Value.number = part_nummer, но я получаю сообщение об ошибке cannot be implicitly converted.

Где я иду не так?

Ответы [ 4 ]

4 голосов
/ 02 ноября 2009

Вы пытаетесь присвоить строку IEnumerable, на которую она похожа.

var part_nummer = from n in nummer
    select n.Value;
//string temp = part_nummer;

actualISDN.Value.number = part_nummer;

Вы должны сделать это вместо:

var part_nummer = from n in nummer
    select n.Value;
//string temp = part_nummer;

actualISDN.Value.number = part_nummer.FirstOrDefault();
4 голосов
/ 02 ноября 2009

Не используйте var, и проблема станет ясна.

var part_nummer = from n in nummer
select n.Value;
//string temp = part_nummer;
actualISDN.Value.number = part_nummer;
2 голосов
/ 02 ноября 2009

Когда вы пишете это:

var part_nummer = from n in nummer
    select n.Value;

part_nummer содержит IEnumerable<T>. Вам лучше написать что-то вроде этого:

var nummer = nums.XPathSelectElement("value"); // not XPathSelectElements !
var part_nummer = nummer.Value;

actualISDN.Value.number = part_nummer;
0 голосов
/ 02 ноября 2009

Не могу прочитать ваш код, он не рендерит Хорошо на маленьком экране, но взятый из комментариев, попробуйте обернуть part_number linq в (linq идет сюда) .Single ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...