как я могу создать список строк двойной [,] - PullRequest
1 голос
/ 22 октября 2019

У меня есть double[,], и я хочу создать список каждой строки этого double[,], а затем создать список из этих списков. Я попробовал этот код, но вывел исключение из диапазона: lQC[j].Add(new double());

double[,] disQC = new double[42, TTools.Depth.Count];
List<double> mQC = new List<double>();
mQC.Add(new double());

for (int j = 0; j < Example.Count; j++)
{
    mQC.Add(100);
    for (int i = 0; i < 42; i++)
    {
        if (XQuartz[i] < TPorosity.Neutron[j] && TPorosity.Neutron[j] < XCalcite[i] && YQuartz[i] < TPorosity.BulkDensity[j] && TPorosity.BulkDensity[j] < YCalcite[i])
        {

            mQC[i] = (YCalcite[i] - YQuartz[i]) / (XCalcite[i] - XQuartz[i]);
            disQC[i, j] = (Math.Abs((TPorosity.BulkDensity[j] - YQuartz[i] - (mQC[i] * TPorosity.Neutron[j]) + (mQC[i] * XQuartz[i])) / Math.Sqrt(Math.Pow(mQC[i], 2) + 1)));

        }
        else
        {
            disQC[i, j] = 100;
        }
        List<List<double>> lQC = new List<List<double>>();
        lQC.Add(new List<double>());
        lQC[j].Add(new double());
        lQC[j].Add(disQC[i, j]);
        List<int> MinimumIndexQC = new List<int>();
        MinimumIndexQC.Add(80000);
        MinimumIndexQC[j] = lQC[j].IndexOf(lQC[j].Min());
    }
}

Надеюсь, кто-нибудь может мне помочь!

Ответы [ 2 ]

4 голосов
/ 22 октября 2019

На каждой итерации оператора for вы создаете новый lQC. Переместите до for.

0 голосов
/ 22 октября 2019

Вот правильное решение. Демо

  public class Program {
    public static void Main()
    {
      double[,] disQC = new double[5, 5];
      List<List<double>> lQC = new List<List<double>>();
      for (int j = 0; j < 5; j++) {
        lQC.Add(new List<double>());
        for (int i = 0; i < 5; i++) {
          if (i % 2 == 0){
            disQC[i, j] =i + 1 ;
          }
          else{
            disQC[i, j] = j + 1;
          }
          lQC[j].Add(disQC[i, j]);
        }

      }
      lQC.ForEach(l => { l.ForEach(t => Console.Write(t)); Console.WriteLine(""); });
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...