C# 如何在c中被contain切割

C# 如何在c中被contain切割,c#,C#,我想得到一个包含等式的矩阵:例如,我有一个入口:[1,1,2,2,2,3,4,5,5,6],答案是:[[1,1],[2,2,2],[3],[4],[5,5],[6]] int[] arr = [1,1,2,2,2,3,4,5,5,6] int resCopy = [] int resTotal = [] int visited = [] for(let i=0; i<arr.length; i++) { resCopy.push(arr[i])

我想得到一个包含等式的矩阵:例如,我有一个入口:[1,1,2,2,2,3,4,5,5,6],答案是:[[1,1],[2,2,2],[3],[4],[5,5],[6]]

int[] arr = [1,1,2,2,2,3,4,5,5,6]
int resCopy = []
int resTotal = []
int visited = []

for(let i=0; i<arr.length; i++) {

            resCopy.push(arr[i])
            if(visited.indexOf(arr[i])==-1){
                visited.push(arr[i])

                    resTotal.Add(resCopy)
                    resCopy=[]

            }
        }
编辑: 答案也是一本字典


字典[,,3,,,]

我们可以使用Linq对类似的项目进行分组,如下所示

int[] arr = { 1, 1, 2, 2, 2, 3, 4, 5, 5, 6 };
  var arr1 = arr.GroupBy(s1 => s1).Select(s1 => s1.ToArray()).ToArray();

我们可以使用Linq对类似的项目进行分组,如下所示

int[] arr = { 1, 1, 2, 2, 2, 3, 4, 5, 5, 6 };
  var arr1 = arr.GroupBy(s1 => s1).Select(s1 => s1.ToArray()).ToArray();

如果你有1,1,2,2,1,1,3,4,5,5,6会发生什么结果是[1,1,1,1]、[2,2,2]、[3]、[4]、[5,5]、[6]?或者[[1,1],[2,2,2],[1,1],[3],[4],[5,5],[6]?@John first order,我已经编辑了我的问题,那么用户965207的回答应该为你做这件事,除了顺序之外:-如果你有1,1,2,2,2,2,1,1,3,4,5,6会发生什么?-结果是[[1,1,1,1],[2,2],[3],[4],[5,5],[6]?或者[[1,1],[2,2,2,2,2],[1],[1],[5],[5],[4]?@John first order请,我已经编辑了我的问题,然后User965207的回答应该可以为您这样做,除了排序:-OP您可以添加。OrderBys1=>s1 before。GroupBy以确保数字从0开始按升序排列。结果将是一个数组,其中包含相同的值numbers@User965207请告诉我最新情况,我怎样才能得到一本词典ry也是?我编辑了我的问题请参见pleasevar arr1=arr.GroupBys1=>s1.Selects1=>s1.ToArray.ToDictionary=>s.First;将生成一个字典,您可以在.OrderBys1=>s1.GroupBy之前添加。以确保数字从0开始按升序排列。结果将是一个包含相同数据的数组数组numbers@User965207一个更新,请,我怎么可以还要一本字典吗?我编辑了我的问题请参见pleasevar arr1=arr.GroupBys1=>s1.Selects1=>s1.ToArray.ToDictionary=>s.First;将生成一本字典