Linq lambda Select statement
本文关键字:statement Select lambda Linq | 更新日期: 2023-09-27 18:19:44
我是新手,我想选择:(SQL)从[tablename]中选择textfileURL;
我现在拥有的:
public string GetfileURL()
{
return context.wordpuzzles.Select(i => i.textfileURL).ToString();
}
但它不起作用。
此行:
context.wordpuzzles.Select(i => i.textfileURL)
将返回一个IEnumerable。然后你试着把它变成字符串。我想你想把这个IEnumerable中的所有文本都分配给一个字符串吗?
那么Aggregate就派上用场了=)。
context.wordpuzzles.Select(i => i.textfileURL)
.Aggregate(string.Empty, (current, c) => current + c + "'n");
将导致以下情况:
字符串1字符串2等
不确定这是否是你真正想要的。。。
如果你只想要一个,你可以使用FirstOrDefault。
示例:
context.wordpuzzles.FirstOrDefault(i => i.textfileURL.Contains("your criteria"))
您正在做几乎正确的事情,但如果您想选择一个结果,请使用FirstOrDefault()
。否则你会得到IEnumerable<string>
。
Select
将序列中的每个元素投影到一个新的形式中。因此它返回IEnumerable
,而不仅仅是字符串。
您应该首先更正您的项目,因此请尝试以下操作之一:
public string GetfileURL()
{
return context.wordpuzzles.Single(i => i.condition = "yourCriteria").textfileURL.ToString();
}
或
public string GetfileURL()
{
return context.wordpuzzles.First(i => i.condition = "yourCriteria").textfileURL.ToString();
}
或
public string GetfileURL()
{
dim results = context.wordpuzzles.Where(i => i.condition = "yourCriteria").ToList();
'perform rest of code
}
但是,如果执行Single调用,则必须确保它在return语句中只有1行。
如果您不确定是否有可以添加的行。SingleOrDefault或.FirstOrDefault