3D 배열로 문자열을 변환하고,과 같이 2 차원 배열로 구분 된 문자열로 변환 구현 LINQ를 가질 : 나는 우연히 차원에서이 일을 만들려고사용 LINQ 내가 예를 보았다
using System;
using System.Linq;
namespace AACOBusinessModel.Extensions
{
[Serializable]
public class TwoDimensionalStringArray
{
public TwoDimensionalStringArray(string data)
{
// 1;2;3^^4;5;6
this.Data = (
from string line
in data.Split(new string[] { "^^" }, StringSplitOptions.RemoveEmptyEntries)
select line.Split(';')
).ToArray();
}
public TwoDimensionalStringArray() { }
public readonly string[][] Data = { };
public override string ToString()
{
return string.Join("^^",
from string[] line
in Data
select string.Join(";", line)
);
}
}
}
문제 :
using System;
using System.Linq;
namespace AACOBusinessModel.Extensions
{
[Serializable]
public class ThreeDimensionalStringArray
{
public ThreeDimensionalStringArray(string data)
{
// 1;2;3^^4;5;[email protected];4;4^^7;7;7
this.Data = (
from string line2D
in data.Split(new string[] { "@" }, StringSplitOptions.RemoveEmptyEntries)
from string line
in line2D.Split(new string[] { "^^" }, StringSplitOptions.RemoveEmptyEntries)
select line.Split(';')
);
}
public ThreeDimensionalStringArray() { }
public readonly string[][][] Data = { };
public override string ToString()
{
return string.Join("@",
from string[][] line2D
in Data
select string.Join("^^",
from string[] line
in line2D
select string.Join(";", line)
)
);
}
}
}
2D로 끝나는 선택은 배열로 변환되어 2D 배열을 만드는 것으로 이해합니다.
3D로 끝나는 선택은 2D 배열의 모음을 선택해야합니다. 나는 이것을 어떻게하는지 모른다.
UPDATE는
나는이 함께했다하지만 가능하다면 나는 쿼리 구문을하고 싶습니다.
this.Data = data
.Split(new[] { "@" }, StringSplitOptions.RemoveEmptyEntries)
.Select(table => table.Split(new[] { "^^" }, StringSplitOptions.RemoveEmptyEntries)
.Select(row => row.Split(';'))
.ToArray())
.ToArray();
쿼리 SYNAX에서 :
this.Data = (
from table in data.Split(new[] { "@" }, StringSplitOptions.RemoveEmptyEntries)
select
(
from row in table.Split(new[] { "^^" }, StringSplitOptions.RemoveEmptyEntries)
select row.Split(';')
).ToArray()
).ToArray();
는 AB이고; a 및 D^a 및 S, S @의 t는 H; a 및 N ^^에게 Y 케이, O, U는 제'.ToArray 제거되었다 – toddmo