C#将域\用户转换为USER@DOMAIN

C#将域\用户转换为USER@DOMAIN,c#,C#,我目前拥有以下代码: string user = @"DOMAIN\USER"; string[] parts = user.Split(new string[] { "\\" }, StringSplitOptions.None); string user = parts[1] + "@" + parts[0]; 输入字符串user可以采用以下两种格式之一: DOMAIN\USER DOMAIN\\USER (with a double slash) 在C#中,将这些字符串中的任何一个转换

我目前拥有以下代码:

string user = @"DOMAIN\USER";
string[] parts = user.Split(new string[] { "\\" }, StringSplitOptions.None);
string user = parts[1] + "@" + parts[0];
输入字符串
user
可以采用以下两种格式之一:

DOMAIN\USER
DOMAIN\\USER (with a double slash)
在C#中,将这些字符串中的任何一个转换为:

USER@DOMAIN

不确定你会称之为最优雅的:

string[] parts = user.Split(new string[] {"/"},
                            StringSplitOptions.RemoveEmptyEntries);
string user = string.Format("{0}@{1}", parts[1], parts[0]);
这个怎么样:

        string user = @"DOMAIN//USER";
        Regex pattern = new Regex("[/]+");
        var sp = pattern.Split(user);
        user = sp[1] + "@" + sp[0];
        Console.WriteLine(user);

Oded答案的一个变体可能使用:

或者,可以使用linq(基于):

你可以试试这个:

String[] parts = user.Split(new String[] {@"\", @"\\"}, StringSplitOptions.RemoveEmptyEntries);
user = String.Format("{0}@{1}", parts[1], parts[0]);

为了添加另一个选项,这里是:

string user = @"DOMAIN//USER";
string result = user.Substring(0, user.IndexOf("/")) + "@" + user.Substring(user.LastIndexOf("/") + 1, user.Length - (user.LastIndexOf("/") + 1));

你可以用正则表达式。不过,我会让其他人来构造这个正则表达式:)@MAfifi-不需要,不能使用
removempttyentries
。试试看。啊,这会教我一段时间不去想我懂正则表达式+1.
String[] parts = user.Split(new String[] {@"\", @"\\"}, StringSplitOptions.RemoveEmptyEntries);
user = String.Format("{0}@{1}", parts[1], parts[0]);
string user = @"DOMAIN//USER";
string result = user.Substring(0, user.IndexOf("/")) + "@" + user.Substring(user.LastIndexOf("/") + 1, user.Length - (user.LastIndexOf("/") + 1));