我有这种方法有一段时间了
public string getSlotText(int slotID)
{
DataClasses1DataContext context = new DataClasses1DataContext();
var slotString = context.spGetSlotTextBySlotID(slotID);
return slotString.ElementAt(0).slotText;
}
但我现在真正想要的是像
public var getSlotText(int slotID)
{
DataClasses1DataContext context = new DataClasses1DataContext();
var slotString = context.spGetSlotTextBySlotID(slotID);
return slotString;
}
因为slotString中有多个元素。我看到了其他一些例子,但没有LINQ调用sproc。
任何帮助都会很棒,非常感激。
非常感谢
添
答案 0 :(得分:0)
var
关键字不允许作为返回类型。它只能在具有初始化的方法和类成员中使用。
虽然可以对返回类型进行类型推断,这会违反C#中的其他一些内容。例如匿名类型。由于方法无法在C#中返回匿名类型,因此您需要另一项检查,即您不能返回匿名类型,而只是禁止将var
关键字作为返回类型。
此外,允许var
作为返回类型会使方法签名在更改实现时不太稳定。
编辑:目前还不清楚您希望返回什么,但这里有一些标准解决方案:
如果您想从结果返回所有slotText
:
return context.spGetSlotTextBySlotID(slotID).Select(s=> s.slotText).ToList());
(将返回List<string>
)
或者,如果您想要返回所有SlotText
(或从sproc返回的任何类型)
return context.spGetSlotTextBySlotID(slotID).Select(s=> s.slotText).ToList());
(将返回List<SlotText>
)