C# 如何转换列表<;十进制>;列出<;字符串>;?

C# 如何转换列表<;十进制>;列出<;字符串>;?,c#,C#,我的问题是这个问题的一部分: 我从一张表格中收到一组id。我需要获取密钥,将它们转换为字符串并将其传递给数据库 using (var db = new DbAmsecEntities()) { cashsafelist = (from safe in db.Cashsafes where safe.StoreId == (decimal)Convert.ToInt64(ddlLocationLists.SelectedValue)

我的问题是这个问题的一部分:

我从一张表格中收到一组id。我需要获取密钥,将它们转换为字符串并将其传递给数据库

 using (var db = new DbAmsecEntities())
 {
    cashsafelist = (from safe in db.Cashsafes
                    where safe.StoreId == (decimal)Convert.ToInt64(ddlLocationLists.SelectedValue)
                    select safe.CashsafeId).ToList();
    cashsafevalues = cashsafelist.Select(x => x.ToString).ToList();//getting error here
 } 
您需要在中使用()

您还可以使用自2.0以来提供的

cashsafevalues = cashsafelist.ConvertAll<string>(d => d.ToString());
cashsafevalues=cashsafelist.ConvertAll(d=>d.ToString());

它可能比
ToList
更有效,因为列表将以正确的大小初始化。

是否尝试将括号添加到
x.ToString()
调用?为了将来的参考,请尝试详细说明您所遇到的错误以及您为修复该错误所做的尝试;这使得问题的质量更好。你犯了什么错误?你犯了什么错误?根据问题的实际情况,错误消息应该是一个很大的线索。toString需要括号-->
toString()
为什么要转换为Int64,然后转换为十进制,请使用convert.ToDecimal代替:cashsafelist.Select(toString).ToList()@Dennis_E:than不会编译,因为
ToString
不是静态的。@TimSchmelter是静态的与此无关。你不能用实例方法来做吗???在mono上,我得到的信息是它无法推断类型,所以这就是它失败的原因。(我现在无法访问Windows计算机,因此无法检查这是否仅限于mono)。当您编写这样的lambda时,Resharper会提示您将其更改为方法组,因为x=>x是多余的。@Dennis_E:您是对的,它是否是静态的并不是唯一重要的因素。我必须承认,我不知道如何让它与非静态方法一起工作,但它必须以某种方式工作。这就是为什么我要问:)
cashsafevalues = cashsafelist.ConvertAll<string>(d => d.ToString());