Ошибка лямбда-приведения - PullRequest
0 голосов
/ 10 июня 2011

Я использую лямбда-выражение и пытаюсь конвертировать в uint при добавлении в Hashset.Вот что я делаю:

HashSet<uint> LeadsInSession = new HashSet<uint>();


if (HttpContext.Current.Session["Category_SelectedLeadIds"] != null)
  {
    Dictionary<LeadPurchase.CategoryLeadSearch, List<string>> toRemoveLeadsIDs =
      (Dictionary<LeadPurchase.CategoryLeadSearch, List<string>>)HttpContext.Current.Session["Category_SelectedLeadIds"];

    LeadPurchase.CategoryLeadSearch searches = (LeadPurchase.CategoryLeadSearch)HttpContext.Current.Session["searches"];

    var toAdd = toRemoveLeadsIDs.Where(Pair => Pair.Key.VerticalID == searches.VerticalID)
                                   .Select(Pair => Pair.Value)
                                   .ToList();

    foreach (var lead in toAdd)
      LeadsInSession.Add(lead);// I need to convert lead into uint. Convert.ToUInt32() didn't work here.

  }

Любой способ?

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Ваша проблема в том, что toRemoveLoasIOs - это словарь с типом значения List<string>. Следовательно, toAdd будет IEnumerable<List<string>>, и, таким образом, lead будет List<string>, что вполне разумно не преобразуется в uint.

Вам нужно перебрать и toAdd, и внутренний цикл, по lead, а затем у вас есть отдельные string s для преобразования. Что-то вроде:

foreach (var lead in toAdd) {
  foreach (string value in lead) {
    uint u;
    if (UInt32.TryParse(value, out u)) {
      LeadsInSession.Add(u);
    }
  }
}
0 голосов
/ 10 июня 2011

Вы пробовали?

LeadPurchase.CategoryLeadSearch searches
   = (LeadPurchase.CategoryLeadSearch) HttpContext.Current.Session["searches"];
var toAdd = toRemoveLeadsIDs.Where(Pair => Pair.Key.VerticalID == searches.VerticalID)
                            .Select(Pair => (uint)Pair.Value)
                            .ToList<uint>();
foreach (var lead in toAdd)
  LeadsInSession.Add(lead);
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...