在另一个数组中存储多个数组

时间:2017-10-12 11:28:52

标签: c# arrays model-view-controller asp.net-core-mvc

我目前正在为我的应用程序使用 ASP.NET Core MVC ,而且我不确定如何解决问题。

说我有两个双类型数组

double[] questionOne = {1,4,5,2,4};
double[] questionTwo = {3,2,4,5,2};

我想使用一种方法将它们连接在一起并将它们存储在可能的字典中,以便存储的值类似于

stud1 | 1,3
stud2 | 4,2
stud3 | 5,4
stud4 | 2,5
stud5 | 4,2

所以我可以检索这些值并计算每个学生的总价值。


不知道会有多少问题。
我也不知道会有多少学生。 我稍后可以循环使用这些值但是现在,它是一个固定值。

我应该将值存储在字典,列表还是元组中?

此后,如何调用该方法,以便我可以返回值并显示在我的" View"?中 我不需要将值放在一个表中,如果可能的话,我会检查算法的想法。

3 个答案:

答案 0 :(得分:1)

您可以使用LINQ:

List<Tuple<double, double>> tuples =
    questionOne.Zip(questionTwo, (one, two) => Tuple.Create(one, two)).ToList();

它结合了数字数组。你也可以为学生做同样的事情:

string[] students = new string[] {"stud1", "stud2", "stud3", "stud4", "stud5"};
Dictionary<string, Tuple<double, double>> result = students
    .Zip(tuples, (student, tuple) => new { student, tuple })
    .ToDictionary(entry => entry.student, entry => entry.tuple);

您可以查看结果here

答案 1 :(得分:1)

自.Net 4.7以来您可以使用此代码:

using System;
using System.Linq;

public class Program
{
    public static void Main()
    {
        double[] questionOne = {1, 4, 5, 2, 4};
        double[] questionTwo = {3, 2, 4, 5, 2};
        var combined = questionOne.Zip(questionTwo, (q1, q2) => (q1, q2)).ToList();
        Console.WriteLine(combined);
    }
}

答案 2 :(得分:0)

您可以使用此结构:

Dictionary<string, string[]> myDictionary= new Dictionary<string, string[]>();

然后你只需要一个添加内容的算法,如:

for(int i=0; i<array1.Length; i++) {
    String[] data = new String[2];
    data[0] = array1[i];
    data[1] = array1[i];
    myDictionary.Add("student"+i, data);
}