你好,我有一个返回
的方法Dictionary<Text, List<string>>
我希望它返回两个字典。
这是我的方法:
public static Dictionary<Text, List<string>> CotisationURSSAF(TnsPrimitiveSession primitiveSession, int _IndexEnCours, CTNSExercice _Exercice, bool isAjustee)
{
Dictionary<Text, List<string>> CotisationURSSAF = new Dictionary<Text, List<string>>();
Dictionary<Text, List<string>> ElementsPrisEnCompte = new Dictionary<Text, List<string>>();
return CotisationURSSAF;
}
我尝试过使用 Tuple ,但是我仍然遇到我的代码错误的问题:
public Tuple<Dictionary<Text, List<string>, Text, List<string>>, Dictionary<Dictionary<Text, List<string>, Text, List<string>>> CotisationURSSAF<Text, List<string>, Text, List<string>>((TnsPrimitiveSession primitiveSession, int _IndexEnCours, CTNSExercice _Exercice, bool isAjustee))
{
Dictionary<Text, List<string>> CotisationURSSAF = new Dictionary<Text, List<string>>();
Dictionary<Text, List<string>> ElementsPrisEnCompte = new Dictionary<Text, List<string>>();
return Tuple.Create(CotisationURSSAF, ElementsPrisEnCompte);
}
答案 0 :(得分:5)
有两种更好的方法来代替这个没人能理解的怪异的元组怪物:
Dictionary<Text, List<string>>
Dictionary<Text, List<string>>[]
public static Dictionary<Text, List<string>>[] CotisationURSSAF(TnsPrimitiveSession primitiveSession, int _IndexEnCours, CTNSExercice _Exercice, bool isAjustee)
{
Dictionary<Text, List<string>> CotisationURSSAF = new Dictionary<Text, List<string>>();
Dictionary<Text, List<string>> ElementsPrisEnCompte = new Dictionary<Text, List<string>>();
return new[]{ CotisationURSSAF, ElementsPrisEnCompte };
}
您可以通过索引对其进行访问。
答案 1 :(得分:3)
Tuple<
Dictionary<Text, List<string>>,
Dictionary<Text, List<string>>
>
随时删除换行符。
但是,如果很难创建,将很难阅读。也许您应该将它们放在自己的类中,以提高可读性。
答案 2 :(得分:3)
Bonjour,一种解决方案:返回Dictionary
的数组,然后可以通过array [0]和array [1]进行访问
public static Dictionary<Text, List<string>>[] CotisationURSSAF(TnsPrimitiveSession primitiveSession, int _IndexEnCours, CTNSExercice _Exercice, bool isAjustee)
{
var list = new List<Dictionary<Text, List<string>>>();
Dictionary<Text, List<string>> CotisationURSSAF = new Dictionary<Text, List<string>>();
Dictionary<Text, List<string>> ElementsPrisEnCompte = new Dictionary<Text, List<string>>();
list.Add(CotisationURSSAF);
list.Add(ElementsPrisEnCompte);
return list.ToArray();
}
答案 3 :(得分:0)
方法类型必须与您的返回类型匹配。您正在定义一个Dictionary,当Dictionary仅接受2时,它是4种通用数据类型。
元组是另一个接受两个(或更多)通用数据类型的构造。
所以您真正想做的是返回一个具有两个在方法中定义的字典的元组:
Tuple<Dictionary<Text, List<string>>, Dictionary<Text, List<string>>>
似乎您应该稍微研究一下泛型。
答案 4 :(得分:0)
我建议您上一堂课而不是元组。它使事情对于调用者而言更加明显。例如:
public class ReturnModel
{
public Dictionary<Text, List<string>> CotisationURSSAF { get; set; }
public Dictionary<Text, List<string>> ElementsPrisEnCompte { get; set; }
public ReturnModel(Dictionary<Text, List<string>> cotisationURSSAF, Dictionary<Text, List<string>> elementsPrisEnCompte)
{
this.CotisationURSSAF = cotisationURSSAF;
this.ElementsPrisEnCompte = elementsPrisEnCompte;
}
}
您的方法将返回此模型。 (将其重命名为您的业务案例)
快乐编码!