String linq查询列表的语法<;字符串>;
我正在尝试做这样的事情String linq查询列表的语法<;字符串>;,string,linq,casting,nvarchar,String,Linq,Casting,Nvarchar,我正在尝试做这样的事情 public static List<string> GetAttachmentKeyList() { DataClassesDataContext dc = new DataClassesDataContext(); List<string> list = from a in dc.Attachments select a.Att_Key.ToString().ToList(); return list
public static List<string> GetAttachmentKeyList()
{
DataClassesDataContext dc = new DataClassesDataContext();
List<string> list = from a in dc.Attachments
select a.Att_Key.ToString().ToList();
return list;
}
公共静态列表GetAttachmentKeyList()
{
DataClassesDataContext dc=新的DataClassesDataContext();
List List=来自dc中的附件
选择a.Att_Key.ToString().ToList();
退货清单;
}
Visual Studio正在说
无法将类型“System.Linq.IQueryable>”隐式转换为“System.Collections.Generic.List”。
存在显式转换(是否缺少强制转换?)
正确的语法是什么?试试看
public static List<string> GetAttachmentKeyList()
{
DataClassesDataContext dc = new DataClassesDataContext();
List<string> list = ( from a in dc.Attachments
select a.Att_Key.ToString() ).ToList();
return list;
}
公共静态列表GetAttachmentKeyList()
{
DataClassesDataContext dc=新的DataClassesDataContext();
列表=(来自dc.Attachments中的a)
选择a.Att_Key.ToString()).ToList();
退货清单;
}
试试这个
public static List<string> GetAttachmentKeyList()
{
DataClassesDataContext dc = new DataClassesDataContext();
return dc.Attachments.Select(a=>a.Att_Key).ToList();
}
公共静态列表GetAttachmentKeyList()
{
DataClassesDataContext dc=新的DataClassesDataContext();
返回dc.Attachments.Select(a=>a.Att_Key).ToList();
}
我想应该是下面这样
List<string> list = (from a in dc.Attachments
select a.Att_Key.ToString()).ToList<string>();
List List=(来自dc.Attachments中的a)
选择a.Att_Key.ToString()).ToList();
希望这有帮助 +1:是的,在原始示例中,
ToString()
返回的字符串调用了.ToList()
,因此linq表达式的计算结果是-IEnumerable
,而不是List
,感谢Brian&Praveen的帮助和令人难以置信的快速回复!!!!这是对问题代码最简单的修正;但是更简洁。+1-我不知道为什么人们会对这样一个简单的问题使用查询语法。如果有更好的方法,我们会有兴趣了解它。这显然是最好的答案,应该是公认的答案。我们可以不使用整个偏执(from…。ToList()
@GokulE,这些括号是必要的,以了解应用于什么的ToList
——整个表达式的结果。请注意,在原始问题中,尝试编写代码,但缺少括号。这将ToList
应用于select
子句内的单个字符串。或者参见Pedro的答案,以获得更简单的解决方案。