使用LINQ并将结果存储在DataTable中

4

首先,我想说,我对编程和C#语言还算新手。

我正在使用LINQ查询一个我制作的DataTable以获取特定的结果。我知道这个片段是有效的,但由于某些原因,当我通过VS的调试器运行它时,它将以下内容分配给我的变量:

var resultOne = from Rows in dt.AsEnumerable()
                where Rows.Field<string>("Column1") == SLSRResult
                //&& row.Field("B") == 2
                select Rows.Field<string>("Column2");
MessageBox.Show(string.Format ("Value is: {0}", resultOne));

如果这个问题比较模糊或者问题本身不符合正确格式,我很抱歉,因为这是我第一次使用这个资源。

1个回答

1

resultOne不是单个字符串,而是一个IEnumerable<string>,因此可能有多个。您可以选择特定的一个(例如使用First()),或者使用另一种方法来获取单个字符串,例如String.Join

string allResults = String.Join(",",  resultOne);

您可以在 foreach 中枚举所有内容:
foreach(string str in resultOne)
    MessageBox.Show(string.Format ("Value is: {0}", str));

如果您知道只有一个或者只对第一个感兴趣,请使用FirstFirstOrDefault(如果多个不正确,则使用Single/SingleOrDefault):
string firstOfAll = resultOne.FirstOrDefault(); // null if there was none

非常感谢您的帮助! - Kadmin van vuuren

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接