是否有一种方法可以使用Tuple类,但在其中提供项目的名称?
例如:
public Tuple<int, int, int int> GetOrderRelatedIds()
它返回OrderGroupId、OrderTypeId、OrderSubTypeId和OrderRequirementId的id。
让我的方法的用户知道哪个是哪个就好了。(当您调用该方法时,结果为result。Item1,结果。第二条,结果。Item3 result.Item4。不清楚哪个是哪个。)
(我知道我可以创建一个类来保存所有这些id,但这些id已经有自己的类,它们生活在其中,为这个方法的返回值创建一个类似乎很愚蠢。)
到今天为止,就是这么简单。而不是使用Tuple关键字
public Tuple<int, int, int int> GetOrderRelatedIds()
用这个。
public (int alpha, int beta, int candor) GetOrderRelatedIds()
得到这样的值。
var a = GetOrderRelatedIds();
var c = a.alpha;
MichaelMocko回答得很好,
但我想补充一些我必须弄清楚的东西
(string first, string middle, string last) LookupName(long id)
如果你使用。net framework < 4.7,上面的Line会给你一个编译时错误
因此,如果你有一个使用。net framework < 4.7的项目,你仍然想使用ValueTuple,而不是安装这个NuGet包
更新:
从方法返回Named tuple并使用它的示例
public static (string extension, string fileName) GetFile()
{
return ("png", "test");
}
使用它
var (extension, fileName) = GetFile();
Console.WriteLine(extension);
Console.WriteLine(fileName);