Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String linq查询列表的语法<;字符串>;_String_Linq_Casting_Nvarchar - Fatal编程技术网

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的答案,以获得更简单的解决方案。