Quiero crear una matriz de dos dimensiones de diferente tipo, como puedo agregar a esa matriz dos valores, uno de ellos es el nombre de control y el segundo es el valor booleano.Definición de matriz dinámica bidimensional con diferentes tipos
Respuesta
No puede hacer eso. En su lugar, se debe crear una clase que contiene estas dos propiedades, a continuación, puede crear una matriz de este tipo:
public class MyClass
{
public string ControlName {get;set;}
public bool MyBooleanValue {get;set;}
}
public MyClass[] myValues=new MyClass[numberOfItems];
O, como dice Anders, usar un diccionario si una de las propiedades está destinado a ser utilizado para realizar búsquedas.
Si desea buscar/configurar un booleano por nombre de control, puede usar un Dictionary<string, bool>
.
No se puede con eso con una matriz.
¿Quizás deberías estar usando un Dictionary?
Un diccionario genérico de Dictionary<string,bool>
parece ser el tipo de cosa que funcionará para su descripción.
Usar el diccionario < string, bool >. Si, por algún motivo, realmente necesita una matriz, intente con el objeto [,] y establezca sus valores según los tipos que desee.
Un diccionario funcionará para lo que intenta hacer entonces.
Dictionary<string, bool> controllerDictionary = new Dictionary<string, bool>();
para establecer un valor
if (controllerDictionary.ContainsKey(controllerName))
controllerDictionary[controllerName] = newValue;
else
controllerDictionary.Add(controllerName, newValue);
Para obtener un valor
if (controllerDictionary.ContainsKey(controllerName))
return controllerDictionary[controllerName];
else
//return default or throw exception
Puede simplemente usar 'controllerDictionary [controllerName] = newValue;', 'ContainsKey' y' Add' no son necesarios –
Sí, es cierto, es solo se necesita para obtener el –
Otra forma de hacerlo es crear una matriz de tipo de objeto, y luego añadir esto a un ArrayList . Aquí hay un código de ejemplo:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections;
using System.Collections.Generic;
namespace Collections
{
class Program
{
static void Main(string[] args)
{
ArrayList ar = new ArrayList();
object[] o = new object[3];
// Add 10 items to arraylist
for (int i = 0; i < 10; i++)
{
// Create some sample data to add to array of objects of different types.
Random r = new Random();
o[0] = r.Next(1, 100);
o[1] = "a" + r.Next(1,100).ToString();
o[2] = r.Next(1,100);
ar.Add(o);
}
}
}
}
Depende de cómo desea utilizar su matriz. ¿Desea buscar el valor con una clave o por su índice? Konamiman sugirió una clase. Pero una clase con dos tipos no es más que un Dictionary<type of key, type of value>
. Puede usar un diccionario si desea obtener el valor con una tecla. Al igual que :
Dictionary<string, int> MyDict = new Dictionary<string, int>();
MyDict.Add("Brutus", 16);
MyDict.Add("Angelina", 22);
int AgeOfAngelina = MyDict["Angelina"];
Ahora la desventaja de un diccionario es que, no se puede iterar sobre ella. El orden es indeterminado No puede usar MyDict[0].Value
para obtener la edad de Brutus (que es 16).
Se puede usar un
List<KeyValuePair<string, int>> MyList = new List<KeyValuePair<string, int>>();
para iterar a través de una matriz 2D de dos tipos diferentes como List
apoya iteración. Pero, de nuevo, no puede obtener la edad de Angelina por MyList["Angelina"].Value
, pero tendría que usar MyList[0].Value
.
Pero también podría usar una tabla de datos. Pero requiere algo más de trabajo inicializar la tabla con sus columnas.
Por supuesto, puede extender con LINQ para usar consultas en sus datos. –
¿Desde cuándo no se puede iterar sobre un diccionario? – claudekennilol
"Una matriz multidimensional es una matriz: todo elementsin todas las dimensiones tienen el mismo tipo de"
- 1. matriz bidimensional de diferentes tipos
- 2. ¿Cómo puedo crear una matriz de longitud dinámica bidimensional?
- 3. 2 lista matriz bidimensional
- 4. Definición de diferentes tipos de números en C#
- 5. matriz bidimensional en python
- 6. push() una matriz bidimensional
- 7. matriz bidimensional en ios
- 8. Java - impresión de matriz bidimensional
- 9. jquery creando una matriz bidimensional
- 10. ¿Cómo se usa (la Biblioteca de matrices multidimensionales Boost) para construir una matriz bidimensional dinámica?
- 11. creando una matriz bidimensional de forma dinámica en el bloque de memoria continua
- 12. Encontrar vecinos en una matriz bidimensional
- 13. argumentos definición dinámica en C#
- 14. ¿Almacena diferentes tipos de datos en una matriz NumPy?
- 15. Asignación de matriz dinámica bidimensional y transferencia por referencia en C
- 16. inicialización de una matriz bidimensional de cadenas
- 17. Definición de clase dinámica CON nombre de clase
- 18. OCaml tipos con diferentes niveles de especificidad
- 19. Crear diferentes tipos de distribución con setup.py
- 20. Solo lectura de matriz bidimensional en C#
- 21. Rendimiento de matriz bidimensional vs matriz 1 dimensional
- 22. C# 1 asignan matriz bidimensional a la sintaxis 2 matriz bidimensional
- 23. Comandos de matriz y división para crear una matriz bidimensional
- 24. ¿Lista de diferentes tipos?
- 25. Php empujando valores a una matriz bidimensional
- 26. Java: matriz bidimensional con métodos/capacidades similares a ArrayList
- 27. Inicializar una gran matriz bidimensional en C++
- 28. Rotar una matriz bidimensional en 90 grados
- 29. GSON para analizar matriz con múltiples tipos
- 30. SQLAlchemy sinónimo columna con diferentes tipos
No estoy seguro de entender su pregunta, pero no lo hará una obra Diccionario para lo que tratamos de hacer ? ¿Estás tratando de almacenar pares clave/valor? –
sí .............. – Harikrishna