Извлечение данных из коллекций типа IEnumerable - PullRequest
0 голосов
/ 10 января 2012

BranchState - это класс, который имеет следующие свойства:

  • Государство
  • Отделение
  • AgencyId
  • Описание

С этим кодом ...

var AgencyBranches = 
    from  b in BranchStates
    select  b.Description.Distinct();

var States = 
    from s in BranchStates
    select s.State.Distinct();

if (AgencyBranches.Count() == 1 && States.Count() == 1)
{
    if (States.FirstOrDefault().Tostring() == "CA") /// **This always yields some generic value.** 
        Response.Redirect("StateCA.aspx");

    if (States.FirstOrDefault().Tostring() == "Az") /// **This always yields some generic value.** 
        Response.Redirect("StateAz.aspx");
}

... States.FirstOrDefault() всегда дает System.Collections.Generic.List`1[System.Char]

Заранее спасибо

1 Ответ

4 голосов
/ 10 января 2012

Это не делает то, что вы думаете, потому что отсутствуют некоторые круглые скобки:

var States = from s in BranchStates 
             select s.State.Distinct();

Здесь Distinct работает с каждым значением State свойства, давая последовательность символов потому что State (a string) реализует IEnumerable<char>.

Вы, вероятно, имели в виду

var States = BranchStates.Select(b => b.State).Distinct();
...