我想问一下如何只为每个循环返回
当前我得到的并非所有代码路径都返回一个值。
public Config getConfigSingle(string CID, string name)
{
var raw = db.ap_GetInfo(CID, name);
foreach (var item in raw.ToList())
{
return new Config
{
Name = item.Name.ToString(),
Value = item.Value.ToString(),
};
}
}
public partial class ClubConfig
{
public string Name { get; set; }
public string Value { get; set; }
}
谢谢M
答案 0 :(得分:4)
您可以使用yield
:
public IEnumerable<Config> getConfigSingle(string CID, string name)
{
var raw = db.ap_GetInfo(CID, name);
foreach (var item in raw.ToList())
{
yield return new Config
{
Name = item.Name.ToString(),
Value = item.Value.ToString(),
};
}
}
答案 1 :(得分:3)
您可以使用LINQ构建您的对象以返回:
public List<Config> getConfigSingle(string CID, string name)
{
var raw = db.ap_GetInfo(CID, name);
return raw.Select(r => new Config
{
Name = r.Name.ToString(),
Value = r.Value.ToString()
}).ToList();
}
答案 2 :(得分:2)
您必须为每个代码路径返回一个值。如果foreach中的collectio为空,则该方法不会返回任何内容。最后添加一个返回null。
a$ = ""
DO
IF LOC(1) THEN a$ = a$ + INPUT$(1, 1)
LOOP UNTIL INSTR(a$, "OK")