C# 3.0 使用lambda+;C#3.0

C# 3.0 使用lambda+;C#3.0,c#-3.0,C# 3.0,我正在尝试以下几点 foreach (DataRow dr in dt.Rows) { if (dr["TABLE_NAME"].ToString().Contains(sheetName)) { tableName = dr["TABLE_NAME"].ToString()

我正在尝试以下几点

foreach (DataRow dr in dt.Rows)
                        {
                            if (dr["TABLE_NAME"].ToString().Contains(sheetName))
                            {
                                tableName = dr["TABLE_NAME"].ToString();
                            }
                        }
通过使用lambda-like

string tableName = "";
                        DataTableExtensions.AsEnumerable(dt).ToList().ForEach(i =>
                            {
                                tableName = i["TABLE_NAME"].ToString().Contains(sheetName);
                            }
                        );
但获取编译时错误“不能隐式bool到string”。那么,如何实现同样的目标呢


谢谢(C#3.0)

tableName
string
Contains()
返回
bool

所以这个错误是因为

    tableName = i["TABLE_NAME"].ToString().Contains(sheetName);
您可以做的是(但我认为在linq中有更好的选项)

祝你好运

string tableName = "";
DataTableExtensions.AsEnumerable(dt).ToList().ForEach(i =>
    {
        var s =  i["TABLE_NAME"];
        if(s.ToString().Contains(sheetName))
            tableName = s;
    }
);