将字符串划分为列表



我有像"abc 201 lmn road pqr near xyz building state maharashtra navi mumbai, 4212001 .... "这样的地址String

我想将此字符串拆分为列表

List<string> addrList = new List<string>();
addrList.add("abc 201 lmn road pqr near");
addrList.add("xyz building state maharashtra ");
addrList.add("navi mumbai, 4212001");

我尝试了以下功能

private string[] splitToNChar(string inputString, int chunkSize)
    {
        List<string> myList = new List<string>();
        for (int i = 0; i < inputString.Length; i += chunkSize)
        {
            myList.Add(inputString.Substring(i, chunkSize));
        }
        return myList.ToArray(); 
    }

但是当我将块大小传递为40字符时,它有一个例外,例如

抛出的异常:mscorlib中的"System.ArgumentOutOfRangeException".dll 异常 eee :索引和长度必须引用 字符串。

如果inputString "abc 201 lmn road pqr near xyz building state maharashtra navi mumbai, 4212001 .... "

扩展函数的结果是:

private string[] splitToNChar(string inputString, int chunkSize)
{
    if (chunkSize > inputString.Length)
        throw new Exception("input string (" + inputString.Length + ") is smaller than chunksize (" + chunkSize + ")");
    List<string> myList = new List<string>();
    for (int i = 0; i < inputString.Length; i += chunkSize)
    {
        if (i + chunkSize < inputString.Length)
            myList.Add(inputString.Substring(i, chunkSize));
        else
            myList.Add(inputString.Substring(i)); //ADD REST OF STRING
    }
    return myList.ToArray();
}

输出:

[0]  abc 201 lmn road pqr near
[1]   xyz building state mahar
[2]  ashtra navi mumbai, 42120
[3]  01 ....

我希望我正确理解你的问题。

最新更新