3

我得到如下的语言代码。有没有简单的方法来获取语言代码?

var activeLanguages = GetAllActiveLanguages().Where(e => e.Id == Id).ToList();

foreach (var l in activeLanguages)

{

    language = l.LanguageCode;

}
4

3 回答 3

6

如果您期望只有一个匹配,请使用Single

language = GetAllActiveLanguages().Single(e => e.Id == Id).LanguageCode;
于 2013-07-29T12:15:52.800 回答
3

当然,只要放

.Select(e => e.LanguageCode)

进入您的查询:

var activeLanguages =
  GetAllActiveLanguages()
  .Where(e => e.Id == Id)
  .Select(e => e.LanguageCode)
  .ToList();
于 2013-07-29T12:13:48.393 回答
2

使用该.Select(expression)方法,您将获得它包含的结果,例如,选择单个属性,而不是指定您想要一个项目,您将获得一个IEnumerable<T>whereT是您选择的属性的类型。

对于public string LanguageCode { get; set; }

List<string> activeLanguages = GetAllActiveLanguages()
                               .Where(e => e.Id == Id)
                               .Select(x => x.LanguageCode)
                               .ToList();

你也只能得到第一个:

string firstActiveLanguages = GetAllActiveLanguages()
                               .Where(e => e.Id == Id)
                               .Select(x => x.LanguageCode)
                               .FirstOrDefault();

您还可以获得该Last项目:

string firstActiveLanguages = GetAllActiveLanguages()
                               .Where(e => e.Id == Id)
                               .Select(x => x.LanguageCode)
                               .LastOrDefault();
于 2013-07-29T12:17:03.953 回答