gpt4 book ai didi

c# - 在 C# 中将字符串拆分为数组然后循环

转载 作者:太空宇宙 更新时间:2023-11-03 17:33:55 25 4
gpt4 key购买 nike

我已经用 Google 搜索了很多,但我的 C# 技能非常糟糕,我只是不明白为什么这不起作用。

我有一个来自 session 对象的字符串,我无法控制它的设置。该字符串包含一些用六个下划线分隔的句子。例如。:

Sentence number one______Sentence number two______Sentence number three etc

我想用六个下划线分割这个字符串并返回结果数组中的每个项目。

这是我的代码:
string itemsPlanner = HttpContext.Current.Session["itemsPlanner"].ToString();

string[] arrItemsPlanner = itemsPlanner.Split(new string[] { "______" }, StringSplitOptions.None);

foreach (string i in arrItemsPlanner)
{
newItemsPlanner += "debug1: " + i; //This returns what looks like a number, as I'd expect, starting at zero and iterating by one each loop.
int itemNumber;

try
{
itemNumber = Convert.ToInt32(i);
string sentence = arrItemsPlanner[itemNumber].ToString();
}
catch (FormatException e)
{
return "Input string is not a sequence of digits.";
}
catch (OverflowException e)
{
return "The number cannot fit in an Int32.";
}
finally
{
return "Fail!"
}
}

每当我运行此程序时, session 都会成功检索,但行中显示: itemNumber = Convert.ToInt32(i);每次都失败,我收到一条错误消息“输入字符串不是数字序列”。

谁能指出我正确的方向?

非常感谢!

最佳答案

在你的情况下i不是数字,它是数组中的实际元素。 foreach 循环没有迭代变量,您只能访问通过 i 迭代的实际元素.

所以第一个循环迭代 i 是第一句,然后是第二句。

如果你想要这个数字,你必须使用 for 循环。

所以像这样

for( int i = 0; i < arrItemsPlanner.length; i++ ){
//on first iteration here
//i is 0
//and arrItemsPlanner[i] id "Sentence number one"
}

希望能帮助到你。

关于c# - 在 C# 中将字符串拆分为数组然后循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8739903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com