maheshbisht Ответов: 1

выберите одно значение из списка с помощью лямбда - выражения


У меня есть список занятий
      public class PrintUTAccural
      {
          public string PropertyName { get; set; }
          public string VendorName { get; set; }
          public string VendorNumber { get; set; }
          public string InvoiceNumber { get; set; }
          public DateTime? InvoicePostDate { get; set; }
          public string UseTaxName { get; set; }
          public decimal UseTaxExemptAmount { get; set; }
          public decimal UseTaxAmount { get; set; }
          public decimal UseTaxNonExemptAmount { get; set; }
          public decimal InvoiceAmount { get; set; }           
      }
string Name= "Nath"

и я должен найти имя "Нат" из этого списка через лямбда-выражение, а затем как я его получу.
string VenderNumber = UtAccuralLstForComp.Where(x => x.VendorName == Name).Select(x => x.VendorNumber).SingleOrDefault();


я использую это, но не получил ценности

[Edit]добавлен блок кода[/Edit]

David_Wimbley

Можете ли вы показать, как вы заполняете список?

List<PrintUTAccural> list = новый список<PrintUTAccural>();
список.Добавить(new PrintUTAccural{ VendorName = "David", VendorNumber = "1"});
список.Добавить(new PrintUTAccural{ VendorName = "Nath", VendorNumber = "88"});
список.Добавить(new PrintUTAccural{ VendorName = "Thom", VendorNumber = "3"});
список.Добавить(new PrintUTAccural{ VendorName = "Wilson", VendorNumber = "4"});

строка VenderNumber = список.Где(x => x.VendorName == "Nath").Выберите(x => x.VendorNumber).Метода singleordefault();

Приставка.WriteLine("Номер Поставщика:" + VenderNumber);

Я сделал все вышесказанное, и ваш код работал нормально.

Pheonyx

Может быть, стоит попробовать FirstOrDefault() вместо SingleOrDefault()?

почитайте здесь:
http://social.msdn.microsoft.com/Forums/en-US/oslo/thread/7ab62c94-0da3-4d6a-92aa-070d9ff8441f

1 Ответов

Рейтинг:
2

vibhu12345

string VenderNumber = UtAccuralLstForComp.Where(x => x.VendorName == Name).SingleOrDefault().VendorName