C#算法问题求助大神帮忙

请教大神一个算法问题,把数字字符串11 13 15 17 13 14 15"分组,每组数字都不同,得到结果是11 13 15 17,13 14 15两个数组

string str="11 13 15 17 13 14 15"; string []arr=str.Split(" "); //以空格来分割字符串,这样就把11 13 15 17 13 14 15 放进数组了

string []arr1=new string[4]; arr1[0]=arr[0]; arr1[1]=arr[1]; arr1[2]=arr[2]; arr1[3]=arr[3]; string []arr2=new string[3]; arr2[0]=arr[4];arr2[1]=arr[5];arr2[2]=arr[6];

还有一种就是先截取字符串,获得11 13 15 17 ,13 14 15两个字符串,然后分割下就成两个数组了

string numstr="11 13 15 17 13 14 15";
string[] arrnum1=new string[4];
string[] arrnum2=new string[3];
for (int i=0 ;i<4;i++)
{
arrnum1[i]=numstr.Split(' ')[i];
}
for (int i = 0; i < 3; i++)
{
arrnum1[i] = numstr.Split(' ')[i+4];
}

private static string TestStr = "11 13 15 16 17 13 14 15";

    private static int[] StrArrToIntArr(string strArr)
    {
        string[] arr = TestStr.Split(' ');
        int length = arr.Length;
        int[] intarr = new int[length];
        for (var i = 0; i < arr.Length; i++)
        {
            intarr[i] = int.Parse(arr[i]);
        }
        return intarr;
    }

    private static int[][] StrtoDiffIntArr(string arrStr)
    {
        int[] arrInt = StrArrToIntArr(arrStr);
        int len1 = 1;
        List<int> lst = arrInt.ToList();

        //循环计算  重复最多的数字的个数
        for (var i = 0; i < arrInt.Length; i++)
        {
            int j = lst.Select(x => x == arrInt[i]).Count(y => y);
            if (j > len1)
                len1 = j;
        }

        List<List<int>> resultLst = new List<List<int>>();
        for (int i = 0; i < len1; i++)
        {
            resultLst.Add(new List<int>());
        }

        for (var i = 0; i < arrInt.Length; i++)
        {
            SetValueToList(resultLst, arrInt[i]);
        }
        int[][] result = new int[resultLst.Count][];
        for (var i = 0; i < resultLst.Count; i++)
        {
            result[i] = resultLst[i].ToArray();
        }
        return result;
    }

    private static void SetValueToList(List<List<int>> dicList, int value)
    {
        for (var i = 0; i < dicList.Count; i++)
        {
            if (!dicList[i].Contains(value))
            {
                dicList[i].Add(value);
                return;
            }
        }
    }

会得到两个数组 11 13 15 17 14,13 15.
result 可以有多个数组,看你最多重复的数字有几个。
如果数据是“11 11 11 11 11”,则结果是5个数组,每一个都是11

var result = StrtoDiffIntArr(TestStr);