3

1 番目の GUID文字列:

A-B-C-D

2 番目の GUID文字列:

W-X-Y-Z

3 番目に必要なリバーシブル文字列:

A -W- B -X- C -Y- D -Z

1st と 2nd を結合して 3rd を取得し、それを分離して両方を取得する最良の方法は 何ですか?

Join-Split、Aggregate、Zip など?

編集I:すべてのGUIDが { ABCD }で
あると想定されている場合、おそらくLINQですか?Enumerable<String>

4

4 に答える 4

4

最良の方法は?私はわかりません。しかし、私はそれが簡単な方法だと思います。

string g1 = "A-B-C-D";
string g2 = "W-X-Y-Z";

var result = String.Join("-",g1.Split('-').Zip(g2.Split('-'), (a,b) => a+"-"+b));

編集

そして戻るために

int i=0;
var gs = result.Split('-').GroupBy(_ => i++ % 2).Select(g => String.Join("-",g))
               .ToList();
于 2013-04-06T21:20:14.717 に答える
1

構文が 100% でな​​い場合はご容赦ください。C# は私の最初の言語ではありませんが、各 GUID をリストに分割します。次に、単純なループ。

List<string> lstGuid1 = new List<string>;
List<string> lstGuid2 = new List<string>;
lstGuid1.AddRange(guid1.ToString().Split("-"));
lstGuid2.AddRange(guid2.ToString().Split("-"));
string guid3 = null;
if(lstGuid1.Length == lstGuid2.Length)
{
  for(int i = 0; i < lstGuid1.Length; i++)
  {
    guid3 += lstGuid1[i] + "-" + lstGuid2[i] + "-";
  }
  guid3 = guid3.Substring(0, guid3.Length - 1);
}
于 2013-04-06T21:25:18.060 に答える