在String数组中插入一个元素

时间:2011-08-09 12:32:14

标签: c# arrays

我有包含n个元素的字符串。

我想在第一个位置插入一个自动递增的数字。

E.g     数据

66,45,34,23,39,83
64,46,332,73,39,33 
54,76,32,23,96,42

我正在使用split char','

将字符串拆分为数组

我希望带有递增数字的结果数组成为第一个位置

1,66,45,34,23,39,83
2,64,46,332,73,39,33
3,54,76,32,23,96,42

请建议我该怎么做。

由于

8 个答案:

答案 0 :(得分:14)

您不能使用数组,而是需要使用List<string>

例如:

List<string> words = new string[] { "Hello", "world" }.ToList();
words.Insert(0, "Well");

答案 1 :(得分:10)

Linq有一个简单的方法来完成你的“使命”:

首先添加正确的命名空间:

using System.Linq;

然后:

// Translate your splitted string (array) in a list:
var myList = myString.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).ToList<string>();

// Where insertPosition is the position you want to insert in:
myList.Insert(insertingPosition, insertedString);

// Back to array:
string[] myArray = myList.ToArray<string>();

希望这会有所帮助......

答案 2 :(得分:4)

您无法向Array插入任何内容。请改用List<T>

答案 3 :(得分:3)

您必须使用类似ArrayList的内容,其中包含ArrayList.Insert()方法。

   ArrayList myAL = new ArrayList();
   myAL.Insert( 0, "The" );
   myAL.Insert( 1, "fox" );
   myAL.Insert( 2, "jumps" );
   myAL.Insert( 3, "over" );
   myAL.Insert( 4, "the" );
   myAL.Insert( 5, "dog" );

答案 4 :(得分:3)

如果你有如下列表

那该怎么办?
string a="66,45,34,23,39,83";
string b="64,46,332,73,39,33"; 
string c="54,76,32,23,96,42";
分割a,b,c之前

string[] s=new string[]{a,b,c};

for(int i=0; i<s.length;i++){
    s[i]=(i+1)+s[i];
}

现在拆分s

中的每个字符串

你会有一个像

这样的清单

1,66,45,34,23,39,83 2,64,46,332,73,39,33 3,54,76,32,23,96,42

我不确定我是否理解了你的问题。 :|

答案 5 :(得分:1)

我知道您想要一个C#答案(这里已经有使用该语言的好答案了),但是我正在学习F#,并以此语言作为学习练习。

因此,假设您要返回一个字符串数组并愿意使用F#...

let aStructuredStringArray = [|"66,45,34,23,39,83"
                               "64,46,332,73,39,33"
                               "54,76,32,23,96,42"|]

let insertRowCountAsString (structuredStringArray: string array) =
    [| for i in [0 .. structuredStringArray.Length-1] 
        do yield String.concat "" [ i.ToString(); ","; structuredStringArray.[i]]
            |]

printfn "insertRowCountAsString=%A" (insertRowCountAsString aStructuredStringArray)

答案 6 :(得分:0)

无法调整C#数组的大小。这意味着您无法插入项目。

您有两种选择:

  1. 改为使用List<T>
  2. 创建一个新数组,其中包含一个额外项目,复制旧数据的内容,依此类推。
  3. 选项1总是首选。


    Array.Resize(T)。从表面上看,这与我上面所说的相矛盾。但是,此方法的文档说明:

      

    此方法分配具有指定大小的新数组,将旧数组中的元素复制到新数组,然后用新数组替换旧数组。

答案 7 :(得分:-5)

将用于lopp的递增数字附加到字符串

1,66,45,34,23,39,83
2,64,46,332,73,39,33
3,54,76,32,23,96,42