Tupla en C#

31/01/2006 - 17:00 por Catalin Lungu | Informe spam
Existe el concepto de Tuple en C#? quiero decir un objeto inmutable que
puede almacenar varios tipos de datos.
Algo así:

Tuple<tipo1, tipo2, tipon> mitupla = ("Pepe", 50, true);

Saludos,
Catalin

Preguntas similare

Leer las respuestas

#1 A.Poblacion
31/01/2006 - 18:39 | Informe spam
"Catalin Lungu" wrote in message
news:dro1ij$l0k$
Existe el concepto de Tuple en C#? quiero decir un objeto inmutable que
puede almacenar varios tipos de datos.
Algo así:

Tuple<tipo1, tipo2, tipon> mitupla = ("Pepe", 50, true);



En las librerías standard creo que no existe, pero nada te impide crearla
de una forma similar a la siguiente:

public class Tuple<T1, T2, T3>
{
public T1 v1;
public T2 v2;
public T3 v3;
public Tuple<T1, T2, T3>(T1 p1, T2 p2, T3 p3)
{
v1=p1; v2=p2; v3=p3;
}
}

Y la usarías asi:
Tuple<string, int, bool> mitupla = new Tuple<string, int,
bool>("Pepe", 50, true);

Otra cosa que se me ocurre es usar para ese propósito el DataRow de
ADO.NET. Puedes definir un DataTable con columnas que coincidan con los
tipos que quieres para tu tupla. A continuación, cada vez que quieras un
objeto de ese tipo, lo construyes con el método NewRow del DataTable. El
DataRow devuelto por el NewRow ya viene listo para contener los N valores de
los tipos correctos.
Respuesta Responder a este mensaje
#2 Misael Monterroca
31/01/2006 - 18:51 | Informe spam
Solo con F# y si mal no recuerdo con Comega

http://research.microsoft.com/proje...terop.aspx

Con .Net 2.0 podrias lograr algo similar utilizando generics.

Saludos
Misael Monterroca - Microsoft Mvp C#
http://www.neo-mx.com/blogs/neo-mx


"Catalin Lungu" escribió en el mensaje
news:dro1ij$l0k$
Existe el concepto de Tuple en C#? quiero decir un objeto inmutable que
puede almacenar varios tipos de datos.
Algo así:

Tuple<tipo1, tipo2, tipon> mitupla = ("Pepe", 50, true);

Saludos,
Catalin


Respuesta Responder a este mensaje
#3 Hernan
31/01/2006 - 19:23 | Informe spam
En C# v1 tienes 'struct'. Son como las clases pero de tipo valor.

public struct Point {
public int x, y;

public Point(int p1, int p2) {
x = p1;
y = p2;
}
}

...
Point myPoint = new Point();
Point yourPoint = new Point(10,10);
...
...
// tambien puedes obviar el 'new'
Point myPoint;
myPoint.x = 10;
myPoint.y = 20;

-H.
Respuesta Responder a este mensaje
#4 Octavio Hernandez
01/02/2006 - 00:34 | Informe spam
A,

Parece buena idea lo de utilizar la clase DataTable y NewRow() !
Porque lo otro que queda si quisiéramos que las tuplas pudieran tener
diferente cantidad de campos sería algo como esto:

public class Tuple<T1> { }
public class Tuple<T1, T2> { }
public class Tuple<T1, T2, T3> { }
// etc...

Hay dos o tres tipos genéricos definidos así en la preview de C# 3.0
disponible en la web.

Slds - Octavio

"A.Poblacion" escribió en
el mensaje news:
"Catalin Lungu" wrote in message
news:dro1ij$l0k$
Existe el concepto de Tuple en C#? quiero decir un objeto inmutable que
puede almacenar varios tipos de datos.
Algo así:

Tuple<tipo1, tipo2, tipon> mitupla = ("Pepe", 50, true);



En las librerías standard creo que no existe, pero nada te impide
crearla de una forma similar a la siguiente:

public class Tuple<T1, T2, T3>
{
public T1 v1;
public T2 v2;
public T3 v3;
public Tuple<T1, T2, T3>(T1 p1, T2 p2, T3 p3)
{
v1=p1; v2=p2; v3=p3;
}
}

Y la usarías asi:
Tuple<string, int, bool> mitupla = new Tuple<string, int,
bool>("Pepe", 50, true);

Otra cosa que se me ocurre es usar para ese propósito el DataRow de
ADO.NET. Puedes definir un DataTable con columnas que coincidan con los
tipos que quieres para tu tupla. A continuación, cada vez que quieras un
objeto de ese tipo, lo construyes con el método NewRow del DataTable. El
DataRow devuelto por el NewRow ya viene listo para contener los N valores
de los tipos correctos.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida