これが私の問題です
私は次の配列を持っています(例えば)
string[] arr = new[] { "s_0001", "s_0002", "s_0003", "sa_0004", "sa_0005", "sab_0006", "sab_0007" };
次のような出力をしたい
s_0001
sa_0004
sab_0006
私はすべてを試しましたが、運がありません!これは長いプロジェクトの最初のステップであり、どんな助けでも大歓迎です。
[編集]文字がいつ変わるかはわかりませんが、文字と数字を区切るためのアンダースコアが常に存在することは知っています。どういうわけかこれらの文字を抽出してから、重複する文字を取り除く必要があります
[編集]より具体的には、アンダースコアの前に各文字列の一意のエントリを設定したいのですが、数字は気にしません
[編集]OKみんな!あなたは本当にアクティブです私はあなたにそれを与えます。こんなに早く答えられるとは思っていませんでした。しかし、どうやら(私は過去8時間これに取り組んできたので)、私は間違った質問をしました
これが私のコードです
//Loop through the XML files in the Directory and get
//the objectName and GUID of each file
string[] arr_xmlFiles = Directory.GetFiles(Dir, "*.xml"); //Array with all XML Files in the Directory
foreach (string xmlFile in arr_xmlFiles)
{
try
{
//Get the XMLs Name
XDocument xmlF = XDocument.Load(xmlFile);
string objectName = xmlF.Root.Name.ToString();
//Get the XMLs GUID
XElement oDcElement = xmlF.Root.FirstNode as XElement;
Guid oGuid = new Guid(oDcElement.Attribute("DataclassId").Value);
//Prints out the results
Console.WriteLine(" " + objectName + " " + oGuid);
}
catch (XmlException) { }
}
私が基本的に行っているのは、ディレクトリ内のすべてのXMLファイルを取得することです(それらには、GUIDを含むObjectNameが含まれています)
すなわち
CM_Commands [0ee2ab91-4971-4fd3-9752-cf47c8ba4a01].xml
CM_Commands [1f627f72-ca7b-4b07-8f93-c5750612c209].xml
申し訳ありませんが、区切り記号は「[」ではなく「_」でしたが、問題ではありません。
次に、これらすべてのXMLを配列に保存し、これらのXMLからそれぞれのObjectNameとGUIDを抽出します。
その後、同じobjectNameを保持する各XMLの1つだけにいくつかの変更を加えたいと思います。
それで全部です