我有一个无法触及的WCF服务返回List<FilesWithSettings>
。
我需要输入几个组合在一起的PC并为每个PC检索List<FilesWithSettings>
以及PCIdentifier
,这会将我带到Dictionary<PCIdentifier,List<FilesWithSettings>>
或List<PCIdentifier>
和List<List<FilesWithSettings>>
优雅而不可读。
你能给我更优雅的解决方案吗?
答案 0 :(得分:6)
我猜你有三个选择:
List<List<T>> // Which is pretty nasty
或:
Dictionary<PCIdentifier, List<T>>
哪个更能说明你的意图甚至:
class PCResult
{
PCIdentifier Identifier { get; set; };
List<T> Results { get; set; }
}
和
List<PCResult>
我个人更喜欢第三种,但第二种也很好。
答案 1 :(得分:5)
我会喜欢
[DataContract]
public class PCState // need a better name
{
[DataMember]
public PCIdentifier Identifier {get;set;}
[DataMember]
public List<FilesWithSettings> Files {get;set;}
}
并返回List<PCState>
。这避免了复杂的过度泛型类型和嵌套列表等的所有问题,并且很容易被消费。
答案 2 :(得分:2)
Dictionary<PCIdentifier,List<FilesWithSettings>>
实际上非常优雅。您可以清楚地识别单个PC并迭代所有PC,但也可以获得每台PC所需的所有数据。