索引和长度必须引用字符串中的位置。?
Index and length must refer to a location within the string.?
我的输入字符串是
inputData = "99998UNKNOWN"
inputData = "01000AMEBACIDE/TRICHOM/ANTIBAC 1"
- inputData = "34343AMEBACIDE/TRICHOM/ANTIBACSADWA1"
ID = inputData.Substring(0,5);
Name = inputData.Substring(5,30);
Level = inputData.Substring(35,1);
我收到以下错误,
索引和长度必须引用字符串中的某个位置。
我能理解,这个错误是由于 "Name" 的子字符串中指定的长度与第一个输入不匹配。
有什么方法可以处理任何输入长度的问题吗?
一种方法是在获取子字符串之前在字符串末尾添加一个"sentinel" 后缀。现在您可以在从中获取子字符串之前将其添加到数据字符串中。只要后缀有足够的长度,你就永远不会得到 index/length 异常:
var padded = inputData.PadRight(32);
ID = padded.Substring(0, 5).Trim();
Name = padded.Substring(5, 30).Trim();
Level = padded.Substring(30, 1).Trim();
但是,现在您的代码应该检查 ID
、Name
或 Level
是否为空。
我的输入字符串是
inputData = "99998UNKNOWN"
inputData = "01000AMEBACIDE/TRICHOM/ANTIBAC 1"
- inputData = "34343AMEBACIDE/TRICHOM/ANTIBACSADWA1"
ID = inputData.Substring(0,5);
Name = inputData.Substring(5,30);
Level = inputData.Substring(35,1);
我收到以下错误, 索引和长度必须引用字符串中的某个位置。
我能理解,这个错误是由于 "Name" 的子字符串中指定的长度与第一个输入不匹配。 有什么方法可以处理任何输入长度的问题吗?
一种方法是在获取子字符串之前在字符串末尾添加一个"sentinel" 后缀。现在您可以在从中获取子字符串之前将其添加到数据字符串中。只要后缀有足够的长度,你就永远不会得到 index/length 异常:
var padded = inputData.PadRight(32);
ID = padded.Substring(0, 5).Trim();
Name = padded.Substring(5, 30).Trim();
Level = padded.Substring(30, 1).Trim();
但是,现在您的代码应该检查 ID
、Name
或 Level
是否为空。