interview.Job.Summary.ToArray().split()
interview.Job.Summary是一个字符串,如果我使用toArray方法成为char []。但似乎没有像拆分这样的功能。我希望它分开,以便每个数组包含一定数量的字符(200个字符 - > 50 50 50 50)
请帮忙!
编辑:
我正在使用名为PDFSharp的库。要显示字符串,我们必须从字面上绘制字符串。因此,如果不拆分char数组,似乎不可能将这一长行分成4行。
EDIT2:
答案 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