Tôi muốn tạo hai mảng thứ nguyên thuộc loại khác nhau như tôi có thể thêm vào mảng đó hai giá trị một trong số đó là tên kiểm soát và thứ hai là giá trị boolean.Xác định mảng động hai chiều với các kiểu khác nhau
Trả lời
Bạn không thể làm điều đó. Thay vào đó, bạn nên tạo một lớp có chứa hai thuộc tính này, sau đó bạn có thể tạo một mảng của kiểu đó:
public class MyClass
{
public string ControlName {get;set;}
public bool MyBooleanValue {get;set;}
}
public MyClass[] myValues=new MyClass[numberOfItems];
Hoặc, như Anders nói, sử dụng một cuốn từ điển nếu một trong những thuộc tính có nghĩa là để được sử dụng để thực hiện tra cứu.
Nếu bạn muốn tra cứu/đặt tên boolean bằng tên điều khiển, bạn có thể sử dụng Dictionary<string, bool>
.
Bạn không thể làm điều đó với một mảng.
Có lẽ bạn nên sử dụng Dictionary?
Từ điển chung chung của Dictionary<string,bool>
dường như là loại điều phù hợp với mô tả của bạn.
Sử dụng từ điển < chuỗi, bool >. Nếu, vì lý do nào đó, bạn thực sự cần một mảng, hãy thử đối tượng [,] và truyền giá trị của nó tới các loại bạn muốn.
Từ điển sẽ hoạt động cho những gì bạn đang cố gắng làm sau đó.
Dictionary<string, bool> controllerDictionary = new Dictionary<string, bool>();
Để đặt một giá trị
if (controllerDictionary.ContainsKey(controllerName))
controllerDictionary[controllerName] = newValue;
else
controllerDictionary.Add(controllerName, newValue);
Để có được một giá trị
if (controllerDictionary.ContainsKey(controllerName))
return controllerDictionary[controllerName];
else
//return default or throw exception
Bạn chỉ có thể sử dụng 'controllerDictionary [controllerName] = newValue;', 'ContainsKey' và' Add' không được yêu cầu –
Ye, đó là sự thật, đó là chỉ cần thiết cho việc nhận được –
Một cách khác để làm điều đó là để tạo ra một loạt các loại đối tượng, và sau đó thêm video này vào một ArrayList . Dưới đây là một số mã mẫu:
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);
}
}
}
}
Tùy thuộc vào cách bạn muốn sử dụng mảng của mình. Bạn có muốn tìm kiếm giá trị bằng một khóa hoặc bằng chỉ mục của nó không? Konamiman đề xuất một lớp học. Nhưng một lớp học với hai loại là không có gì hơn một Dictionary<type of key, type of value>
. Bạn có thể sử dụng từ điển nếu muốn lấy giá trị bằng một khóa. Giống như vậy:
Dictionary<string, int> MyDict = new Dictionary<string, int>();
MyDict.Add("Brutus", 16);
MyDict.Add("Angelina", 22);
int AgeOfAngelina = MyDict["Angelina"];
Bây giờ bất lợi của từ điển là bạn không thể lặp lại nó. Thứ tự chưa được xác định. Bạn không thể sử dụng MyDict[0].Value
để lấy tuổi Brutus (là 16).
Bạn có thể sử dụng một
List<KeyValuePair<string, int>> MyList = new List<KeyValuePair<string, int>>();
để lặp qua một mảng 2D của hai loại khác nhau như một List
hỗ trợ lặp. Nhưng sau đó một lần nữa, bạn không thể có được tuổi của Angelina bởi MyList["Angelina"].Value
nhưng bạn sẽ phải sử dụng MyList[0].Value
.
Nhưng bạn cũng có thể sử dụng dữ liệu. Nhưng nó đòi hỏi nhiều công việc hơn để khởi tạo bảng với các cột của nó.
Tất nhiên bạn có thể mở rộng với LINQ để sử dụng truy vấn trên dữ liệu của bạn. –
Vì khi nào bạn không thể lặp lại từ điển? – claudekennilol
"Một mảng đa chiều là một mảng: tất cả elementsin tất cả các kích thước có cùng loại"
- 1. Mảng hai chiều các loại khác nhau
- 2. Sao chép hai mảng hai chiều khác mảng hai chiều Java
- 3. Mảng nhiều chiều với kích cỡ khác nhau
- 4. Hai kiểu khác nhau trong một lần xem văn bản đơn với trọng lực và chiều cao khác nhau
- 5. các div chiều cao khác nhau nổi trong hai cột
- 6. Powershell: Hai mảng chiều
- 7. Sự khác nhau giữa các ký hiệu Mảng đa chiều (đối tượng [] [] và đối tượng [,])
- 8. Tham chiếu hai chiều với các kiểu chữ hoa
- 9. Hai mảng chiều với con trỏ
- 10. scala cách để xác định hàm chấp nhận Danh sách các kiểu số khác nhau
- 11. hai chiều một chiều có thể nối với nhau
- 12. Bảng bên trong bảng với các kiểu khác nhau?
- 13. Tổng chiều dài chuỗi của hai nút khác nhau với Xpath - Tổng hai nút có chiều dài chuỗi
- 14. Matching hai Danh sách các loại khác nhau với nhau
- 15. Xác minh hai cột của hai bảng khác nhau khớp chính xác với
- 16. Mảng các loại khác nhau
- 17. So sánh hai mảng numpy với nhau
- 18. Mảng hai chiều trong python
- 19. Serialize/Deserialize mảng hai chiều
- 20. push() một mảng hai chiều
- 21. Quy tắc xác thực khác nhau của asp.net mvc cho các hành động khác nhau
- 22. Đồng bộ hóa chiều rộng cột giữa các bảng trong hai khung khác nhau, v.v ..
- 23. Hai mảng chiều và con trỏ
- 24. Có thể khai báo hai biến của các kiểu khác nhau trong vòng lặp for không?
- 25. Java - in mảng hai chiều
- 26. Tìm hàng xóm trong mảng hai chiều
- 27. Sự khác nhau giữa hai định nghĩa kiểu hàm này là gì?
- 28. Xác định chiều rộng của chiều rộng cột rộng CSS3 DIV động cố định chiều rộng cột cố định
- 29. Pre xác định mảng đa chiều trong Excel VBA
- 30. Hai cột, bên trái có chiều rộng cố định, phải với chiều rộng động
Tôi không chắc là tôi hiểu câu hỏi của bạn, nhưng sẽ không phải là một công việc điển cho những gì bạn đang cố gắng làm ? Bạn đang cố gắng lưu trữ các cặp khóa/giá trị? –
yes .............. – Harikrishna