如何在特定数量的字符后拆分char数组

时间:2017-07-15 03:52:34

标签: c# arrays

interview.Job.Summary.ToArray().split()

interview.Job.Summary是一个字符串,如果我使用toArray方法成为char []。但似乎没有像拆分这样的功能。我希望它分开,以便每个数组包含一定数量的字符(200个字符 - > 50 50 50 50)

请帮忙!

编辑:

enter image description here

我正在使用名为PDFSharp的库。要显示字符串,我们必须从字面上绘制字符串。因此,如果不拆分char数组,似乎不可能将这一长行分成4行。

EDIT2:

enter image description here

3 个答案:

答案 0 :(得分:2)

你可以这样做:

string text = "It was the best of times, it was the worst of times,";
int lengthOfEachPart = 10;

string[] parts =
    text
        .ToCharArray()
        .Select((x, n) => new { x, n })
        .GroupBy(y => y.n / lengthOfEachPart)
        .Select(y => new string(y.Select(z => z.x).ToArray()))
        .ToArray();

这会给你:

It was the 
 best of t 
imes, it w 
as the wor 
st of time 
s, 

答案 1 :(得分:1)

那里没有不同的数组,它是一个字符串数组。很难理解你想要实现的目标

编辑:

哦,我想我明白了......我觉得你误解了,它已经在一个数组中了,这意味着它已经分裂了。你只需要使用数组从中获取每个char:

  int[] arr = interview.Job.Summary.ToArray();

  foreach (int i in arr) 
  {
     firstArray = arr.Take(array.Length / 4).ToArray();
     secondArray = arr.Take(array.Length / 4).ToArray();
     thirdArray = arr.Take(array.Length / 4).ToArray();
     fourthArray = arr.Take(array.Length / 4).ToArray();

     string1 = Take(firstArray.Length).ToString();
     string2 = Take(secondArray.Length).ToString();
     string3 = Take(thirdArray.Length).ToString();
     string4 = Take(fourthArray.Length).ToString();
  }

答案 2 :(得分:1)

您可以使用只占阵列某个部分的.Take(int)。例如:myArray.Take(50)将获取数组myArray的前50个元素。

在获取前50个元素之后,如果要获取接下来的50个元素,则需要使用.Skip(int)方法添加偏移量,该方法将跳过数组中的特定数量的元素。例如,myArray.Skip(20).Take(50)将返回数组myArray的索引为20到49的元素。

因此,如果你想分割一个等于50个字符的部分的数组,你需要这个:

char[] part1 = myArray.Take(50).ToArray(); // Elements 0 to 49
char[] part2 = myArray.Skip(50).Take(50).ToArray(); // Elements 50 to 99
char[] part3 = myArray.Skip(100).Take(50).ToArray(); // Elements 100 to 149
char[] part4 = myArray.Skip(150).Take(50).ToArray(); // Elements 150 to 199

Split()Take()是Linq命令,并将数组更改为IEnumerable。 Take(50)之后的ToArray()是以数组格式返回。有关Linq的更多信息:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries