C# 将列表作为对象属性的对象列表
声明对象列表:C# 将列表作为对象属性的对象列表,c#,string,list,object,C#,String,List,Object,声明对象列表: List<object> result = new List<object>(); Params中可能有更多字符串,这就是我使用联接的原因 在这里,它通过创建形式为(string,int)的对象来工作。但我的目标是使它成为(string,list of int),如果有两个对象具有相同的字符串,就可以像我之前写的那样将它们组合起来 我试图添加idslist作为对象的第二个属性,但可能没有正确执行 result.Add(new { pars = x, i
List<object> result = new List<object>();
Params
中可能有更多字符串,这就是我使用联接的原因
在这里,它通过创建形式为(string,int)
的对象来工作。但我的目标是使它成为(string,list of int)
,如果有两个对象具有相同的字符串,就可以像我之前写的那样将它们组合起来
我试图添加ids
list作为对象的第二个属性,但可能没有正确执行
result.Add(new { pars = x, ids = dataBinding.Id });
也许我没有完全理解这个场景,但我怀疑使用下面的方法会符合您的目的
List<Dictionary<string, List<int>>>
列表
当密钥不存在时,您将其添加,当密钥存在时,您只需将其添加到列表中。也许我不完全理解该场景,但我怀疑使用以下方法将符合您的目的
List<Dictionary<string, List<int>>>
列表
当密钥不存在时,您添加它,当它存在时,您只需添加到列表中。您可以使用LINQ,尤其是
GroupBy
:
Dictionary<string, List<int>> descriptionIDs = myData
.GroupBy(x => x.myDescription)
.ToDictionary(g => g.Key, g => g.Select(x => x.Id).ToList());
现在,您可以轻松获取ID列表:
var result = descriptionLookup.Select(g => new { pars = g.Key, ids = g.Select(x=> x.Id).ToList() }).ToList():
您可以使用LINQ,尤其是
GroupBy
:
Dictionary<string, List<int>> descriptionIDs = myData
.GroupBy(x => x.myDescription)
.ToDictionary(g => g.Key, g => g.Select(x => x.Id).ToList());
现在,您可以轻松获取ID列表:
var result = descriptionLookup.Select(g => new { pars = g.Key, ids = g.Select(x=> x.Id).ToList() }).ToList():
下面的程序描述了当前的泛型集合类型,如果键已经存在,还允许添加新值
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
MyProgram p = new MyProgram();
p.Add("First" , 5);
p.Add("Second" , 8);
p.Add("Third" , 9);
p.Add("First" , 6);
p.Add("First" , 7);
p.PrintDictionary();
}
}
public class MyProgram
{
private Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
public void Add(string key, int value)
{
if (dict.ContainsKey(key))
{
dict[key].Add(value);
}
else
{
dict.Add(key, new List<int>() {value});
}
}
public void PrintDictionary()
{
foreach(var keyValue in dict)
{
Console.WriteLine("Key : " + keyValue.Key);
foreach(var val in keyValue.Value)
{
Console.WriteLine(string.Format("\t Value : {0}", val));
}
}
}
}
关键:第二
Value : 8
关键:第三
Value : 9
选中此项。下面的程序描述了当前的通用集合类型,如果键已存在,还允许添加新值
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
MyProgram p = new MyProgram();
p.Add("First" , 5);
p.Add("Second" , 8);
p.Add("Third" , 9);
p.Add("First" , 6);
p.Add("First" , 7);
p.PrintDictionary();
}
}
public class MyProgram
{
private Dictionary<string, List<int>> dict = new Dictionary<string, List<int>>();
public void Add(string key, int value)
{
if (dict.ContainsKey(key))
{
dict[key].Add(value);
}
else
{
dict.Add(key, new List<int>() {value});
}
}
public void PrintDictionary()
{
foreach(var keyValue in dict)
{
Console.WriteLine("Key : " + keyValue.Key);
foreach(var val in keyValue.Value)
{
Console.WriteLine(string.Format("\t Value : {0}", val));
}
}
}
}
关键:第二
Value : 8
关键:第三
Value : 9
检查此项。您考虑过使用字典吗?您可以对
myData
变量使用扩展方法。使用字典您考虑过使用字典吗?如果更合适,您可以对myData
变量使用扩展方法。使用字典