Re: [问题] List<string> 与 string[,] 转换?

楼主: J002 (阿里山 我来了XD~)   2015-04-27 22:05:29
※ 引述《don750421 (1+1≠2)》之铭言:
: 请问一下,List<string> 与 string[,] 要如何互转呢??
: 问题一: List<string> => string[,]
: 假设有个List<string> 如下
: List<string> lsName = new List<string>();
: lsName.Add("John,Tom,Kevin,Tony");
: lsName.Add("Jane,Candy,Amy,Sandy");
: lsName.Add("Tomas,Tommy,Michael,Mark");
: 希望可以转成以下这种二维阵列
: [0,0][1,0][2,0][3,0]
: [0,1][1,1][2,1][3,1]
: [0,2][1,2][2,2][3,2]
: 除了for 循环外,能够透过LINQ或Lamdba或其他方式做到吗?
: 问题二:
: 假设有个二维阵列如上,有办法在返回成List<string>吗?
: 也就是输出成...
: List<string> lsName = new List<string>()
: {
: "JohnTomKevinTony","JaneCandyAmySandy","TomasTommyMichaelMark"
: };
: 先谢谢各位前辈@@
下班吃饱了 手痒写一下@@"
还请各位前辈指教0rz
问题一:
public void ListToArray()
{
var lsName = new List<string>
{
"John,Tom,Kevin,Tony",
"Jane,Candy,Amy,Sandy",
"Tomas,Tommy,Michael,Mark"
};
var lsNameContainArray = new List<string[]>();
lsName.ForEach(names => {
lsNameContainArray.Add(names.Split(','));
});
var resultArray = lsNameContainArray.ToArray();
Assert.IsType(typeof(string[][]), resultArray);
}
问题二:(再次修正XD)
public void ArrayToList()
{
var nameArray = new[]
{
new []{"John","Tom","Kevin","Tony"},
new []{"Jane","Candy","Amy","Sandy"},
new []{"Tomas","Tommy","Michael","Mark"}
};
var nameList = nameArray.ToList();
var resultList = new List<List<string>>();
nameList.ForEach(names =>
{
resultList.Add(names.ToList());
});
Assert.IsType<List<List<string>>>(resultList);
}
作者: GoalBased (Artificail Intelligence)   2015-04-27 23:19:00
msdn上面找不到Assert.IsType 是干嘛用的
作者: Litfal (Litfal)   2015-04-27 23:44:00
断言检查,通常用在单元测试里面
作者: GoalBased (Artificail Intelligence)   2015-04-28 00:52:00
谢谢楼上 学习了!
作者: don750421 (1+1≠2)   2015-04-28 01:59:00
感谢前辈回复,问题二先测一下,好像是错误的@@我需要的是string[,] to List..可是您写的是List<string> to List<string>..
作者: leicheong (睡魔)   2015-04-28 07:46:00
Jagged array和Multi-dimensional array是不同的.多维阵列要求同一维度的最长度相同, 因此只能靠取各维最大值把Array new出来后, 再用nested loop把elementcopy进去.
作者: don750421 (1+1≠2)   2015-04-28 20:01:00
感谢lei前辈补充,这两种阵列真的是有差异...搜寻网络上一些教学或是程式码,都将这两者统称为2维阵列,似乎是蛮大的认知错误...感谢J002前辈回复,问题二的部分是二维阵列@@一维直接用ToList()就能转过去了@@我需要的答案应该是...List<string> lsName = new List<string>{"[0,0][1,0][2,0][3,0]","[0,1][1,1][2,1][3,1]","[0,2][1,2][2,2][3,2]"}也就是把二维阵列组成以上的List<string>...

Links booklink

Contact Us: admin [ a t ] ucptt.com