我找到了一個代碼,它并排顯示兩個串列,但是一個串列和一個串列串列沒有運氣
這是并排的兩個串列的代碼
for (var i = 0; i < bncount; i )
{
//Console.WriteLine(String.Format("{0,-10} | {1,-10}", hed.ElementAt(i),bin.ElementAt(i)));
Console.WriteLine(String.Format("{0,-10} | {1,-10}", i< hdcount ? hed[i] : string.Empty, i< bncount ? bin[i] : string.Empty));
}
但是 string.empty 僅用于串列,而不是串列串列,并且 ElementAt() 也不起作用我嘗試將 linq 與 foreach 一起使用,但沒有成功
hed 是字串串列,bn 是數字序列串列的串列
我的輸出如下
foreach(var r in bin) //0010 1110 1111
foreach(var m in hed) //red blue white
我想要以下輸出
red 0010
blue 1110
white 1111
或者
red blue white
0 1 1
0 1 1
1 1 1
0 0 1
關于如何在 c# 或 Linq 中執行此操作的任何想法?我嘗試的方法要么導致僅從 a hed 重印一個值,而從 bin 或相反的所有值重印
uj5u.com熱心網友回復:
不確定我是否正確理解了這個問題,我認為擴展代碼示例(包括變數定義)會有所幫助。無論如何,如果我理解正確,這將是我的方法:
var listOfString = new List<string>( )
{
"red",
"blue",
"white"
};
var listOfArrays = new List<int[]>( )
{
new int[] { 0,0,1,0 },
new int[] { 0,1,1,1 },
new int[] { 1,1,1,1 }
};
// Here you could add a condition in case you are not 100% sure your arrays are of same length.
for( var i = 0; i < listOfString.Count; i )
{
var stringItem = listOfString[i];
var arrayItem = listOfArrays[i];
Console.WriteLine( $"{stringItem} {string.Join( null, arrayItem )}" );
}
uj5u.com熱心網友回復:
我建議使用不同的結構來存盤您的資料(考慮 OOP 原則)和列印資料的以下代碼:
public class Item
{
public string Name { get; set; }
public List<int> Values { get; set; }
}
public void Print(List<Item> items)
{
foreach (var item in items)
{
Console.WriteLine($"{item.Name} {string.Join("", item.Values)}");
}
}
uj5u.com熱心網友回復:
第一個版本并不難:
string reuslt = string.Join("\n", bin.Zip(hed).Select(x => $"{x.Item1} {x.Item2}"));
使用 zip,我們創建了一個可列舉的元組,其中第 n 個元組具有 bin 的第 n 個元素和 hed 的第 n 個元素。您可以連接這兩個專案。
第二個版本有點復雜:
result = string.Join("\t",hed) "\n"
string.Join("\n",Enumerable.Range(0, bin.First().Length)
.Select(x => string.Join("\t\t", bin.Select(str => str[x]))));
我們通過連接 hed 字串來創建標題線。然后我們創建一個可列舉的數字來表示字串中的索引。可列舉將是 0、1、2、3。然后我們取 bin 串列中每個字串的索引為 0 的 char,然后是 bin 串列的每個字串的索引為 1 的 char,依此類推。
在線演示:https ://dotnetfiddle.net/eBQ54N
uj5u.com熱心網友回復:
您可以使用字典:
var hed = new List<string>(){"red", "blue", "white"};
var bin = new List<string>(){ "0010", "1110", "1111" };
Dictionary<string, string> Dic = new Dictionary<string, string>();
for (int i = 0; i < hed.Count; i )
{
Dic.Add(hed[i],bin[i]);
}
foreach (var item in Dic)
{
Console.WriteLine(item.Key " " item.Value);
}
Console.ReadKey();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422288.html
標籤:
上一篇:在變數中使用C#Select
