C#如何获取数组第二个元素及提取二维数组的十六进制值
在C#中提取二维数组的十六进制元素(第二个元素)
你的当前代码会遍历二维数组的所有元素,要只输出每个颜色对应的十六进制值(也就是每行的第二个元素),可以用以下两种方法实现:
方法1:使用for循环直接索引访问
利用二维数组的行长度,通过索引直接获取每行的第二个元素(索引为1,C#数组下标从0开始):
using System; namespace MyApplication { class Program { static void Main(string[] args) { string[,] bgColor = { {"White","FFFFFF"}, {"Green","1CAE1E"}, {"Blue","201CAE"}, {"Red","AE221C"}, {"Pink","AE1C81"}, {"Orange","AE771C"}, {"Yellow","AEAE1C"}, {"Violet","5D1479"}, {"Black","000000"}}; // 获取二维数组的总行数 int totalRows = bgColor.GetLength(0); for (int i = 0; i < totalRows; i++) { // 输出每行的第二个元素(十六进制值) Console.WriteLine(bgColor[i, 1]); } } } }
方法2:使用LINQ简化遍历
如果项目允许引用System.Linq,可以用更简洁的方式提取目标元素:
using System; using System.Linq; namespace MyApplication { class Program { static void Main(string[] args) { string[,] bgColor = { {"White","FFFFFF"}, {"Green","1CAE1E"}, {"Blue","201CAE"}, {"Red","AE221C"}, {"Pink","AE1C81"}, {"Orange","AE771C"}, {"Yellow","AEAE1C"}, {"Violet","5D1479"}, {"Black","000000"}}; // 遍历所有行,提取每行的第二个元素 foreach (var hexValue in Enumerable.Range(0, bgColor.GetLength(0)) .Select(rowIndex => bgColor[rowIndex, 1])) { Console.WriteLine(hexValue); } } } }
补充说明
你原来的foreach会按行优先顺序逐个取出二维数组的所有元素,所以会同时打印颜色名和十六进制值。而上面两种方法都是直接定位到每行的第二个元素,精准获取你需要的十六进制值。
内容的提问来源于stack exchange,提问作者Leonardo Aros U
相关产品推荐
相关产品推荐

