C# Splitting An Array

后端 未结 9 1337
情深已故
情深已故 2020-12-10 00:39

I need to split an array of indeterminate size, at the midpoint, into two separate arrays.

The array is generated from a list of strings using ToArray().

<         


        
9条回答
  •  攒了一身酷
    2020-12-10 01:32

    If functional paradigm is a concern, this might help:

       public static IEnumerable> Split(this IEnumerable seq, Int32 sizeSplits) {
         Int32 numSplits = (seq.Count() / sizeSplits) + 1;
         foreach ( Int32 ns in Enumerable.Range(start: 1, count: numSplits) ) {
            (Int32 start, Int32 end) = GetIndexes(ns);
            yield return seq.Where((_, i) => (start <= i && i <= end));
         }
    
         (Int32 start, Int32 end) GetIndexes(Int32 numSplit) {
            Int32 indBase1 = numSplit * sizeSplits;
            Int32 start = indBase1 - sizeSplits;
            Int32 end = indBase1 - 1;
            return (start, end);
         }
      }
    

提交回复
热议问题