我一直在研究一些代码,并开始使用Tuple来保存一些数据,直到其他一些函数被处理,然后我使用列表中的元组从中获取一些信息并发送电子邮件,例如:
List<Tuple<Customer, Contact, Product>> tupleInfo =
new List<Tuple<Customer, Contact, Product>>();
然后我通过调用我传递Customer,Contact和Product的方法添加不同的对象:
Tuple<Customer, Contact, Product> info =
new Tuple<Customer, Contact, Product>(myCustomer, myContact, myProduct);
info.Add(info);
在我用其他方法处理所有内容之后的最后,这个列表最终将最多包含10个元组,然后发送给发送电子邮件的方法,如下所示:
private ActionResult SendEmails(List<Tuple<Customer, Contact, Product> list)
{
ActionResult result = new ActionResult;
foreach(Tuple<Customer, Contact, Product> info in list)
{
//Here i just grab some the information
//from each tuple, email, product,contact
//contact info and customer info and send
//a personalized email, then do the same with the next records
}
return result;
}
我的问题是,这有多高效,以这种方式使用元组是否可以?我是否通过使用元组交易性能?
我是新手,所以在我做错之前想知道。
答案 0 :(得分:1)
我认为使用元组没有任何性能下降。它们是通用的,所以它就像你编写了自己的容器类一样好。
答案 1 :(得分:1)
" started using Tuple just to hold some data for a bit "
如果这是原因,那么使用元组没有任何害处。
通常,元组用于保存一些数据,其中创建表示相同信息的类可能看起来毫无意义。
您可能想要做一些业务逻辑,为此,创建新类是额外的开销并且无关紧要。
但是还要记住一件事,不建议使用返回类型为TUPLE
的函数。这没有任何意义。
例如,返回类型为EmailContent
的函数比返回类型为元组的函数更清晰,该元组具有某些签名,如Tuple<string,int,bool,string,string>
就个人而言,我会将Tuples
用作私人会员,或者在某些情况下使用较短的生命和不可重用的组件。
所以,在这种情况下,只要您认为“holding some data for a bit
”,就完全可以了。