public class juzhen { double[,] A; //m行n列 int m, n; public juzhen(int han, int lie) { m = han; n = lie; A = new double[m, n]; } public int getM { get { return m; } } public int getN { get { return n; } } public double[,] Detail { get { return A; } set { A = value; } } } static void Main(string[] args) { juzhen yuanlaide = new juzhen(5, 4); int m = yuanlaide.getM;//han int n = yuanlaide.getN;//lie juzhen Mc = new juzhen(n, m); double[,] xinde = Mc.Detail; double[,] a = yuanlaide.Detail; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { xinde[i, j] = a[j, i]; } } }这是把行变为列,把列变行了 空字符补全的话你就判断是行多还是列多 然后自己处理吧
我觉得,把一行定义为struct,然后用一维数组来保存,这样维护处理起来更方便点吧。 如:public struct NetCar { public string Name; public string IpAddress; public string SubnetMask; public string DefaultGateway; public string DNS; public string MacAddress; }List<NetCart> netCarList=new List<NetCart>(); ..........
abcdef
456asdfg变成1a4
2b5
3c6
da
es
fd
f
我现在要在表格里添加这样的网卡信息行,但是有的卡是没有网关和DNS的
所以信息长度不一样。原信息是IP地址一个数组,其他信息按类各自一个数组,长度不一样。求教怎么整理后,按照图片格式输出,并且把没有网关和DNS的部分设置成空白行
public class juzhen {
double[,] A;
//m行n列
int m, n;
public juzhen(int han, int lie) {
m = han;
n = lie;
A = new double[m, n];
}
public int getM {
get { return m; }
}
public int getN {
get { return n; }
}
public double[,] Detail {
get { return A; }
set { A = value; }
}
}
static void Main(string[] args) {
juzhen yuanlaide = new juzhen(5, 4);
int m = yuanlaide.getM;//han
int n = yuanlaide.getN;//lie
juzhen Mc = new juzhen(n, m);
double[,] xinde = Mc.Detail;
double[,] a = yuanlaide.Detail;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
xinde[i, j] = a[j, i];
}
}
}这是把行变为列,把列变行了
空字符补全的话你就判断是行多还是列多
然后自己处理吧
//抛个砖,由于不能复制又重新手打一遍,可能有笔误见谅
string[][] arr1={new string[][]{"1","2","3"},
new string[][]{"a","b","c","d","e","f"},
new string[][]{"4","5","6","a","s","d","f","g"}
};
string[][] arr2=new string[][]{};
int maxNum=0;
for(int i=0;i<arr1.Length;i++)
{
if(maxNum<arr1[i].Length)
{
maxNum=arr1[i].Length;
}
}
Array.Resize(ref arr2,maxNum);
for(int i=0;i<arr.Length;i++)
{
arr2[i]=new string[]{};
Array.Resize(ref arr2[i].Length);
for(int j=0;j<arr2[i].Length;j++)
{
if(j<arr1.Length&&i<arr1[j].Length)
{
arr2[i][j]=arr1[j][i];
}
else
{
arr2[i][j]=string.Empty;
}
}
}
string[][] arr1={new string[][]{"1","2","3"},
new string[][]{"a","b","c","d","e","f"},
new string[][]{"4","5","6","a","s","d","f","g"}
};
string[][] arr2=new string[][]{};
int maxNum=0;
for(int i=0;i<arr1.Length;i++)
{
if(maxNum<arr1[i].Length)
{
maxNum=arr1[i].Length;
}
}
Array.Resize(ref arr2,maxNum);
for(int i=0;i<arr2.Length;i++)
{
arr2[i]=new string[]{};
Array.Resize(ref arr2[i],arr1.Length);
for(int j=0;j<arr2[i].Length;j++)
{
if(j<arr1.Length&&i<arr1[j].Length)
{
arr2[i][j]=arr1[j][i];
}
else
{
arr2[i][j]=string.Empty;
}
}
}
如:public struct NetCar
{
public string Name;
public string IpAddress;
public string SubnetMask;
public string DefaultGateway;
public string DNS;
public string MacAddress;
}List<NetCart> netCarList=new List<NetCart>();
..........
string[] newArray = Enumerable.Range(0, array.Max(o => o.Length)).Select((frow, i) => array.Select(row => row.Length > i ? row.ElementAt(i) : ' ').ToArray()).Select(o => new string(o)).ToArray();