如何使用数据读取器读取字符串值并将其存储在数组中

发布于 2024-12-13 05:55:31 字数 346 浏览 0 评论 0原文

我正在读取结果中的一些值列表,但我不确定哪里出错了,我不知道数组大小,所以我无法为其分配任何值,

string[] result = null;
while (reader.Read())
{
    result = Convert.ToString[](reader["RoleID"]);
}
reader.Close();

我得到: Syntax error;预期值

得到结果值后,如何将结果中的值与字符串进行比较?例如,我想检查结果数组中是否存在字符串 check="Can send message"; 。我怎样才能做到这一点?

I am reading some list of values in the result but I am not sure where I am going wrong, I wont know the array size so I cant assign any value to it

string[] result = null;
while (reader.Read())
{
    result = Convert.ToString[](reader["RoleID"]);
}
reader.Close();

I am getting: Syntax error; value expected.

After I get the result value, how can I compare the values inside the result with a string? For example, I want to check whether the string check="Can send message"; is present in the result array or not. How can I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

夏有森光若流苏 2024-12-20 05:55:31

您的代码在语法上是错误的,因此出现错误。但是,当您必须构建项目集合但事先不知道大小时,您需要使用 List 而不是数组。该列表将允许您不断添加项目。

var results = new List<string>();
while (reader.Read())
{
    results.Add(reader["RoleID"].ToString());
}

// results now holds all of the RoleID values in the reader 

您可以像数组一样通过索引访问列表的元素,并且如果需要,可以使用 Linq(也像数组一样)查询列表。

string check = "something";
if (results.Any(item => item.Equals(check)))
{
    // results contains the value in check 
}

// or use all items that equal check
foreach (var item in results.Where(obj => obj.Equals(check))
{
    // do something with each item that equals check
}

Your code is syntactically wrong, hence the error. But when you have to build a collection of items but you do not know the size in advance, you want to use a List<T> as opposed to an array. The list will allow you to keep adding items.

var results = new List<string>();
while (reader.Read())
{
    results.Add(reader["RoleID"].ToString());
}

// results now holds all of the RoleID values in the reader 

You can access the elements of the list via index, just like an array, and can query the list using Linq (also just like an array) if needed.

string check = "something";
if (results.Any(item => item.Equals(check)))
{
    // results contains the value in check 
}

// or use all items that equal check
foreach (var item in results.Where(obj => obj.Equals(check))
{
    // do something with each item that equals check
}
む无字情书 2024-12-20 05:55:31

我更喜欢使用 ArrayList

var result= new ArrayList();
while (reader.Read())
        {
            result.Add(Convert.ToString[](reader["RoleID"]));
        }reader.Close();

I preffer using ArrayList

var result= new ArrayList();
while (reader.Read())
        {
            result.Add(Convert.ToString[](reader["RoleID"]));
        }reader.Close();
爱要勇敢去追 2024-12-20 05:55:31

您应该按如下方式使用列表:

var results = new List<string>();
while( reader.Read() ){
    results.Add(reader["RoleID"].ToString());
}

然后您将迭代集合中的所有字符串并使用 foreach 语句检查它们:

foreach(var result in results) {
    if(result == "check") {
        // do something
    }
}

You should use a list as follows:

var results = new List<string>();
while( reader.Read() ){
    results.Add(reader["RoleID"].ToString());
}

Then you would iterate through all the strings in the collection and check them using a foreach statement:

foreach(var result in results) {
    if(result == "check") {
        // do something
    }
}
反目相谮 2024-12-20 05:55:31

如果需要,Anthony Pegram 示例中的列表可以轻松转换为数组。

string[] result = results.ToArray();

The list in Anthony Pegram's example can easily be converted to an array if needed.

string[] result = results.ToArray();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文