我在 Google 上搜索了很多,但我的 C# 技能非常糟糕,我就是不明白为什么这不起作用。
我有一个来自会话对象的字符串,我无法控制它的设置。该字符串包含一些由六个下划线分隔的句子。例如:
Sentence number one______Sentence number two______Sentence number three etc
Run Code Online (Sandbox Code Playgroud)
我想用六个下划线分割这个字符串并返回结果数组中的每个项目。
这是我的代码:
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!"
}
}
Run Code Online (Sandbox Code Playgroud)
每当我运行此命令时,会话都会成功检索,但该行显示: itemNumber = Convert.ToInt32(i); 每次都会失败,并且收到错误消息“输入字符串不是数字序列”。
有人能指出我正确的方向吗?
非常感谢!
小智 5
如果您只想获取每个句子并对其执行某些操作,则可以这样做:
string itemsPlanner = HttpContext.Current.Session["itemsPlanner"].ToString();
string[] arrItemsPlanner = itemsPlanner.Split("______");
foreach (string i in arrItemsPlanner)
{
// Do something with each sentence
}
Run Code Online (Sandbox Code Playgroud)
您可以拆分字符串以及 char(或 char[])。在 foreach 中,“i”将是句子的值,因此您可以连接它或处理它或执行任何操作:)
如果我误解了,我很抱歉。我希望这有帮助:)
| 归档时间: |
|
| 查看次数: |
28322 次 |
| 最近记录: |