有没有办法使用Tuple类,但提供其中的项目名称?
例如:
public Tuple<int, int, int int> GetOrderRelatedIds()
Run Code Online (Sandbox Code Playgroud)
返回OrderGroupId,OrderTypeId,OrderSubTypeId和OrderRequirementId的id.
让我的方法的用户知道哪个是哪个是很好的.(当你调用方法时,结果是result.Item1,result.Item2,result.Item3,result.Item4.不清楚哪一个是哪个.)
(我知道我可以创建一个类来保存所有这些ID,但是这些ID已经拥有了他们自己的类,并为这个方法的返回值创建一个类看起来很傻.)
如何和"可能"组织从返回元组类型的方法返回与参数的名称,作为一个exapmle
private static Tuple<string, string> methodTuple()
{
return new {Name = "Nick", Age = "Twenty"}; /*exception because need to new Tuple<string, string>(){Item1 = "Nick", Item2 = "Twenty"}o*/
}
Run Code Online (Sandbox Code Playgroud)
和调用参数 methodTuple.Name
不喜欢methodTuple.Item1....N
这可能吗?
UPD:我想用没有新命名类型的命名参数创建对象.
我在C#中尝试使用ValueTuple类,我对属性命名有疑问,让我们看看:
如果实例化一个ValueTuple声明这样的对象:var tuple1 = (Name: "Name1", Age: 25);
我们可以命名属性,
但是,像这样: ValueTuple<string,int> tuple2 = (Name: "Name1", Age: 25);
我们得到一个警告,说明名字被忽略了,所以
我们应该输入: ValueTuple<string,int> tuple2 = ("Name1",25);
然后属性将是tuple2.Item1
和tuple2.Item2
有人能解释这个新手的原因吗?
比你有利
假设我有一个类是
public class ClientModel
{
[Required]
public int Id { get; set; }
[Required]
[MinLength(2, ErrorMessage = "First name can not be shorter than 2 characters")]
public string FirstName { get; set; }
[Required]
[MinLength(2, ErrorMessage = "Last name can not be shorter than 2 characters")]
public string LastName { get; set; }
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我想将 ClientModel Obj 传递给函数,但没有电子邮件值。这样做的有效方法是什么(除了忽略函数中的电子邮件)。有没有办法当场创建一个新类减去我们不需要的字段?