1

我一直在编写一些代码并开始使用 Tuple 只是为了保存一些数据直到处理一些其他函数,然后我使用列表中的 Tuple 从中获取一些信息并发送电子邮件,例如:

List<Tuple<Customer, Contact, Product>> tupleInfo = 
   new List<Tuple<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;
}

我的问题是,这效率如何,以这种方式使用元组可以吗?我是否通过使用元组来交易性能?

我是新手,所以想知道在我以错误的方式做之前。

4

2 回答 2

1

我不认为使用元组有任何性能下降。它们是通用的,因此就像您编写自己的容器类一样好。

于 2013-10-09T04:46:10.040 回答
1
" started using Tuple just to hold some data for a bit "

如果是这个原因,那么使用元组就没有坏处。

通常,元组用于保存一些数据,其中创建一个类来表示相同的信息似乎毫无意义。

您可能想要做一些业务逻辑,为此,创建一个新类是额外的开销并且无关紧要。

但也要记住一件事,不推荐使用返回类型为 of 的函数TUPLE。这没有任何意义。

例如,返回类型为EmailContent的函数比返回类型为元组的函数更清晰,例如Tuple<string,int,bool,string,string>

就个人而言,我会Tuples作为一些私人成员使用,或者在一些生命周期较短且组件不可重用的情况下使用。

所以,在这种情况下,只要你想,“ holding some data for a bit”,完全没问题。

于 2013-10-09T05:27:29.087 回答