C# 如何使用分隔符获取字符串的前五个字符

C# 如何使用分隔符获取字符串的前五个字符,c#,C#,从这一点来看,这是一条完整的线 "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5" 我怎样才能做到像这样把数组放进去 我想将它们按行放入数组。您可以将字符串分组到数组列表中,每个数组包含源字符串中的5个元素,代码如下: private void Test() { var str = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";

从这一点来看,这是一条完整的线

"1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5"
我怎样才能做到像这样把数组放进去


我想将它们按行放入数组。

您可以将字符串分组到数组列表中,每个数组包含源字符串中的5个元素,代码如下:

 private void Test()
 {
     var str = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
     var items = str.Split(';').Select(x => int.Parse(x)).ToList();
     var result = ChunkBy(items, 5);
 }

 private List<T[]> ChunkBy<T>(List<T> list, int count)
 {
      var result = new List<T[]>();

      var groupsCount = list.Count / count;

      while (result.Count < groupsCount)
      {
           result.Add(list.Skip(count * result.Count).Take(count).ToArray());
      }

      return result;
}
private void Test()
{
var str=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var items=str.Split(“;”).Select(x=>int.Parse(x)).ToList();
var结果=ChunkBy(项目5);
}
私有列表ChunkBy(列表、整数计数)
{
var result=新列表();
var groupscont=list.Count/Count;
while(result.Count
您可以使用以下代码将字符串分组到数组列表中,每个数组包含源字符串中的5个元素:

 private void Test()
 {
     var str = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
     var items = str.Split(';').Select(x => int.Parse(x)).ToList();
     var result = ChunkBy(items, 5);
 }

 private List<T[]> ChunkBy<T>(List<T> list, int count)
 {
      var result = new List<T[]>();

      var groupsCount = list.Count / count;

      while (result.Count < groupsCount)
      {
           result.Add(list.Skip(count * result.Count).Take(count).ToArray());
      }

      return result;
}
private void Test()
{
var str=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var items=str.Split(“;”).Select(x=>int.Parse(x)).ToList();
var结果=ChunkBy(项目5);
}
私有列表ChunkBy(列表、整数计数)
{
var result=新列表();
var groupscont=list.Count/Count;
while(result.Count
带有二维数组:

var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var splittedSubject = subject.Split(new[]{';'});
        
int columns = 3;
int rows = splittedSubject.Length / columns + 1;
        
var twoDimArray = new int[columns,rows];
        
var index = 0;
foreach(var c in splittedSubject)
{
    twoDimArray[index % columns, index / columns] = int.Parse(splittedSubject[index]);
    index++;
}
或者,作为列表:

int columns = 3;
List<int>[] list = new List<int>[] { new List<int>(), new List<int>(),new List<int>()};
                
var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
        
var splitted = subject.Split(new[]{';'});

var index = 0;
foreach(var c in splitted)
{
    list[index % columns].Add(int.Parse(splitted[index]));
    index++;
}
int列=3;
List[]List=新列表[]{new List(),new List(),new List()};
var subject=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var splitted=subject.Split(新[]{';'});
var指数=0;
foreach(拆分中的变量c)
{
列出[索引%列]。添加(int.Parse(拆分的[索引]);
索引++;
}

带有二维数组:

var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
var splittedSubject = subject.Split(new[]{';'});
        
int columns = 3;
int rows = splittedSubject.Length / columns + 1;
        
var twoDimArray = new int[columns,rows];
        
var index = 0;
foreach(var c in splittedSubject)
{
    twoDimArray[index % columns, index / columns] = int.Parse(splittedSubject[index]);
    index++;
}
或者,作为列表:

int columns = 3;
List<int>[] list = new List<int>[] { new List<int>(), new List<int>(),new List<int>()};
                
var subject = "1;2;3;4;5;2;2;2;2;2;3;3;3;3;3;4;4;4;4;4;5;5;5;5;5";
        
var splitted = subject.Split(new[]{';'});

var index = 0;
foreach(var c in splitted)
{
    list[index % columns].Add(int.Parse(splitted[index]));
    index++;
}
int列=3;
List[]List=新列表[]{new List(),new List(),new List()};
var subject=“1;2;3;4;5;2;2;2;3;3;3;3;4;4;4;4;4;4;5;5;5;5;5;5;5”;
var splitted=subject.Split(新[]{';'});
var指数=0;
foreach(拆分中的变量c)
{
列出[索引%列]。添加(int.Parse(拆分的[索引]);
索引++;
}

我假设您的意思是将“第一个五个字符”放在第一列中,接下来的五个字符放在第二列中,依此类推

首先将输入字符串转换为包含数字(作为字符串)的数组

然后将其转换为整数的二维数组:

public static int[,] ToMatrix(string input)
{
    const int Rows = 5;

    string[] numbers = input.Split(';');
    int columns = (numbers.Length + Rows - 1) / Rows;
    int[,] matrix = new int[Rows, columns];

    int i = 0;
    for (int col = 0; col < columns; col++) {
        for (int row = 0; row < Rows; row++, i++) {
            // In case numbers.Length is not divisible by 5.
            if (i >= numbers.Length) return matrix;

            matrix[row, col] = Int32.Parse(numbers[i]);
        }
    }
    return matrix;
}

以及
if(i>=numbers.Length)返回矩阵可能会被删除。

我想你的意思是将“前五个字符”放在第一列,下五个字符放在第二列,依此类推

首先将输入字符串转换为包含数字(作为字符串)的数组

然后将其转换为整数的二维数组:

public static int[,] ToMatrix(string input)
{
    const int Rows = 5;

    string[] numbers = input.Split(';');
    int columns = (numbers.Length + Rows - 1) / Rows;
    int[,] matrix = new int[Rows, columns];

    int i = 0;
    for (int col = 0; col < columns; col++) {
        for (int row = 0; row < Rows; row++, i++) {
            // In case numbers.Length is not divisible by 5.
            if (i >= numbers.Length) return matrix;

            matrix[row, col] = Int32.Parse(numbers[i]);
        }
    }
    return matrix;
}

以及
if(i>=numbers.Length)返回矩阵可以被删除。

您可以将结果作为字符串,其预期结果如您在
行中所述

string input=“1;2;3;4;5;2;2;2;2;3;3;3;3;4;4;4;5;5;5;5;5;5”;
输入=输入+“;”;
int columnNumber=5;
列表结果=新列表();
对于(int columnIndex=0;columnIndex

您可以以结果字符串集合的形式对工作进行写信,如
。此外,我还添加了一些断言来检查结果(您可以将其删除)

您可以将结果作为字符串,并具有您在
行中提到的预期结果

string input=“1;2;3;4;5;2;2;2;2;3;3;3;3;4;4;4;5;5;5;5;5;5”;
输入=输入+“;”;
int columnNumber=5;
列表结果=新列表();
对于(int columnIndex=0;columnIndex

您可以以结果字符串集合的形式对工作进行写信,如
。此外,我还添加了一些断言来检查结果(您可以删除它)

您想要的输出是二维数组吗?第一个条目是一个包含值
1,2,3,4,5
的数组,第二个条目是
2,2,2,2,2
?,您想要的输出是二维数组吗?第一个条目是一个数组,包含值
1,2,3,4,5
,第二个
2,2,2,2,2
?,以及