3 c#
我有一个这样定义的对象:
public class Problem
{
public Problem()
{
this.Questions = new HashSet<Question>();
}
public string Answer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我需要检查对象中的每个问题problem并处理一些数据。这是我尝试过的:
foreach (Question question in problem)
{
if (question.AssignedTo == null)
{
question.QuestionStatusId = 6;
}
else
{
question.AssignedDate = DateTime.UtcNow;
question.QuestionStatusId = 5;
}
}
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。我收到一条错误消息:
严重性代码说明项目文件行错误CS1579 foreach语句无法对类型为'Entities.Models.Core.Problem'的变量进行操作,因为'Entities.Models.Core.Problem'不包含'GetEnumerator'的公共定义。
我还有其他方法可以做到这一点吗?请注意,使用new HashSet<Question>我的原因是因为有人告诉我这是解决唯一问题的方法。
您需要指定您希望遍历HashSet包含在了Problem,而不是Problem本身:
foreach (Question question in problem.Questions) {
...
}
Run Code Online (Sandbox Code Playgroud)
HashSet但是,由于的性质,问题可能会以任何顺序出现。如果您要为问题维持特定顺序,则应使用List。的确,a的元素HashSet是唯一的,但这并不意味着如果元素是唯一的就必须使用a HashSet。
| 归档时间: |
|
| 查看次数: |
5057 次 |
| 最近记录: |