我目前正在为我的应用程序使用 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"?中 我不需要将值放在一个表中,如果可能的话,我会检查算法的想法。
答案 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);
}