我得到了
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:menu="@menu/navigation"/>
来自应用程序的不同部分。这可以返回一些词典,这就是我将它们存储在列表中的原因:
Dictionary<DateTime,double>()
我想将DateTime键相等的字典组合在一起,并将结果转换为数组对象[,],以便每行看起来像这样:
var masterlist = new List<Dictionary<DateTime, double>>();
其中d1,d2,...,dn是列表中字典的模拟代码。 我该怎么办呢?
答案 0 :(得分:4)
你可以试试这个:
Dictionary<DateTime, double[]> preResult = masterlist.SelectMany(s => s).GroupBy(k => k.Key)
.ToDictionary(k => k.Key, v => v.Select(s => s.Value).ToArray());
var result = preResult.Select(s =>
{
var res = new List<object>();
res.Add(s.Key);
res.AddRange(s.Value.Cast<object>());
return res.ToArray();
}).ToArray();
答案 1 :(得分:2)
以下是@ Ksv3n的类似解决方案,其中结果是DateTime作为键的字典,而双重列表作为值:
Dictionary<DateTime, List<double>> masterDic = masterlist
.SelectMany(dic => dic)
.GroupBy(dic => dic.Key)
.ToDictionary(dic => dic.Key, values => values.Select(v => v.Value).ToList());
答案 2 :(得分:0)
您可以使用var masterlist = new List<Dictionary<DateTime, double>>();
Dictionary<DateTime, List<double>> dtDoubles = new Dictionary<DateTime, List<double>>();
foreach (var item in masterlist)
{
foreach (var kvPair in item)
{
if (!dtDoubles.ContainsKey(kvPair.Key))
{
dtDoubles.Add(kvPair.Key, new List<double> {kvPair.Value});
}
else
{
dtDoubles[kvPair.Key].Add(kvPair.Value);
}
}
}
。您循环通过您拥有的词典列表并将条目添加到此词典中。
JSONParser parser = new JSONParser();
Object obj = parser.parse(new FileReader(
"sample.json"));
JSONArray jsonArray = (JSONArray) obj;
for (int i = 0; i < jsonArray.size(); i++) {
System.out.println("Before --" + jsonArray.get(i).toString());
JSONObject jsonObject = (JSONObject)jsonArray.get(i);
jsonObject.remove("selected");
System.out.println("After --" + jsonArray.get(i).toString());
}
System.out.println("Final Output --" + jsonArray.toString());
答案 3 :(得分:0)
这个怎么样:
Dictionary<DateTime, List<double>> result =
masterlist.Select(x => x.AsEnumerable())
.Aggregate((a, b) => a.Concat(b))
.GroupBy(x => x.Key)
.ToDictionary(k => k.Key, v => v.Select(x => x.Value).ToList());