我在MVC视图上具有此帮助程序方法,该方法可返回用户的名字和姓氏(Windows身份验证的应用程序)
@helper AccountName()
{
using (var context = new PrincipalContext(ContextType.Domain))
{
var principal = UserPrincipal.FindByIdentity(context, User.Identity.Name);
@principal.GivenName<text> </text>@principal.Surname
}
}
如何提取用户的姓名缩写(名字的首字母和姓的首字母)?
我尝试过linq:
@AccountName().ToString().Split(' ').Select(x => x[0]).ToArray()
但是结果是:
System.Char[]
任何帮助将不胜感激
答案 0 :(得分:2)
如果要输出前一个字母作为字符串而不是字符数组(为了使ToString
工作),请使用字符串构造函数。 here中已经提到了这一点。
但是,要使其正常工作,您确实需要将其包装在代码块(@(...)
)中。然后它将正确打印。
@(new string(@AccountName().ToString().Split(' ').Select(x => x[0]).ToArray()))
答案 1 :(得分:0)
我会使用整洁的Regex;
// This could be compiled and cached.
var initialsRegex = new Regex(@"(\b[a-zA-Z])[a-zA-Z]*\.* ?");
// This gives the initials
var initials = initialsRegex.Replace(AccountName, "$1");
这还将包括名称以.
开头的姓名,即John S. Doe
答案 2 :(得分:0)
您也可以尝试
Dataset<Row> DS1 = spark.read().option("header",true).csv("path of the File");
Dataset<Row> DS2 = spark.read().option("header",true).csv("path of the File");
ArrayList<String> joinColList = new ArrayList<String>();
joinColList.add("CommonId");
Dataset<Row> joinedData = DS1.join(DS2,scala.collection.JavaConversions.asScalaBuffer(joinColList),"leftouter");
joinedData.show();