我正在使用此功能获取组列表
public static IEnumerable<QuizGroups> GetGroups(string sectorId)
{
var Quizes = _QuizDataSource.AllQuizGroups.Where(x => x.Subtitle == sectorId);
return Quizes;
}
但这会全部返回,我想返回列表中的第一个组。
如何更改语句以获取第一组?
答案 0 :(得分:0)
尝试First
或FirstOrDefault
。
public static IEnumerable<QuizGroups> GetGroups(string sectorId)
{
var Quizes = _QuizDataSource.AllQuizGroups.FirstOrDefault(x => x.Subtitle == sectorId);
return Quizes;
}
答案 1 :(得分:0)
public static QuizGroups GetGroups(string sectorId)
{
return QuizDataSource.AllQuizGroups.FirstOrDefault(
x => x.Subtitle == sectorId);
}
或向集合类添加索引器(假设MyQuizGroupsCollection
的类型为_QuizDataSource
public class MyQuizGroupsCollection: IEnumerable<QuizGroups>
{
// other stuff
public QuizGroups this[string sectorId]
{ get { return FirstOrDefault(x => x.Subtitle == sectorId); } }
}
...然后你可以简单地写
var Quizes = _QuizDataSource[sectorId];
答案 2 :(得分:0)
您可以使用First或FirstOfDefault并使用单个元素返回enumerable:
public static IEnumerable<QuizGroups> GetGroups(string sectorId)
{
return new[]
{
_QuizDataSource.AllQuizGroups.FirstOrDefault(x => x.Subtitle == sectorId)
};
}
另请注意:
GetGroups
方法仅返回QuizGroups
。AllQuizGroups
属性可能为null。为该属性添加空值检查。var quizes
。_QuizDataSource
是公开的,则应将QuizDataSource
重命名为_quizDataSource
;如果属于私有,则应将quizDataSource
或_
重命名.¹¹ - 对于私人领域是否使用{{1}}是一个热议,请阅读更多信息:https://stackoverflow.com/questions/1630844/c-sharp-member-variables-fields-naming-convention