从IEnumerable类型的集合中提取数据

时间:2012-01-10 00:15:12

标签: c# list linq-to-objects

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 个答案:

答案 0 :(得分:4)

这不符合您的想法,因为它缺少一些括号:

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

此处,Distinct在每个State属性值中运行,产生一系列字符,因为State(a string)实现了{{1} }}

你可能意味着

IEnumerable<char>