相关疑难解决方法(0)

多值字典

我如何在c#中创建一个多值字典?

例如Dictionary<T,T,T>,第一个T是键,其他两个是值.

所以这是可能的: Dictionary<int,object,double>

谢谢

c#

72
推荐指数
5
解决办法
11万
查看次数

在C#中返回两个列表的最佳方法是什么?

我几乎不好意思问这个问题,但作为很长一段时间的C程序员,我觉得也许我不知道在C#中做到这一点的最好方法.

我有一个成员函数,我需要返回两个自定义类型(List<MyType>)的列表,我事先知道,我将始终只有两个这样的列表的返回值.

显而易见的选择是:

public List<List<MyType>> ReturnTwoLists();
Run Code Online (Sandbox Code Playgroud)

要么

public void ReturnTwoLists(ref List<MyType> listOne, ref List<myType> listTwo);
Run Code Online (Sandbox Code Playgroud)

两者似乎都不是最优的.

关于如何改进这个的任何建议?

第一种方法并没有在语法中明确表示只返回2个列表,第二种方法使用引用而不是返回值,这看起来非c#.

c# coding-style list

16
推荐指数
2
解决办法
2万
查看次数

什么是多维数组的集合?

我有一组看起来像这样的数据:

001 001 One
001 002 Two
001 003 Three

002 001 One
002 002 Two
002 003 Three

...
Run Code Online (Sandbox Code Playgroud)

现在,当然,我可以创建一个string [x] [y] = z的数组,但是这个数组必须是可调整大小的,我更喜欢使用索引器的字符串表示而不是转换为数字.原因是我需要按字符串查找数据,而且我没有看到不必要的字符串 - >数字转换的重点.

我的第一个想法是:

Dictionary<string, Dictionary<string, string>> data;

data = new Dictionary<string, Dictionary<string, string>>();

Dictionary<string, string> subdata = Dictionary<string, string>();

subdata.Add(key, string);
data.add(key2, subdata);
Run Code Online (Sandbox Code Playgroud)

这有效,但有点麻烦.它也感觉错误和kludgy,并不是特别有效.

那么在集合中存储这种数据的最佳方法是什么?

我还想过创建我自己的集合类,但是如果我不需要的话我宁愿不去.我宁愿只使用现有的工具.

c# collections

7
推荐指数
1
解决办法
9860
查看次数

C#字典或只是继续使用列表?

我正在使用列表来存储一对十六进制值(例如,在列表AD38F2D8中,显示为:Value_A:AD 38 F2 D8).

我的问题是我应该使用Dictionary<string, string>或者我应该使用 Dictionary<string, NewCustomObject>十六进制字符串作为一对字符串存储.(值:[AD,38,F2,D8])而不是(值:AD38F2D8).

它可能不会在两者之间产生很大的差异.

随着Dictionary<string, string>我只想存储在字典中的每个十六进制字符串,然后拆了他们在各自的对,当我需要他们.如果我使用的话,Dictionary<string, NewCustomObject>我最终会先将十六进制字符串拆分成各自的对,然后将它们存储在字典中.

我的问题是我应该使用哪个?或者我应该继续使用列表?

我并不完全有必要使用,Dictionary<string, string>因为我仍然知道哪个索引是什么字符串,只是它会看起来更好.

列表示例:

Index = 0,  Value = 3D95FF08
Index = 1,  Value = 8D932A08
Run Code Online (Sandbox Code Playgroud)

Dictionary<string, string> 例:

Index = 0, Key = First,  Value = 3D95FF08
Index = 1, Key = Second, Value = 8D932A08
Run Code Online (Sandbox Code Playgroud)

Dictionary<string, NewCustomObject> 例:

Index = 0, Key = First,  Value = 3D, 95, FF, 08
Index = 1, Key = Second, Value …
Run Code Online (Sandbox Code Playgroud)

c#

5
推荐指数
1
解决办法
327
查看次数

标签 统计

c# ×4

coding-style ×1

collections ×1

list ×1