@@ -48,35 +48,17 @@ private set
48
48
}
49
49
}
50
50
51
- public string Title
52
- {
53
- get { return string . Join ( " " , _TitleList ) ; }
54
- }
51
+ public string Title => string . Join ( " " , _TitleList ) ;
55
52
56
- public string First
57
- {
58
- get { return string . Join ( " " , _FirstList ) ; }
59
- }
53
+ public string First => string . Join ( " " , _FirstList ) ;
60
54
61
- public string Middle
62
- {
63
- get { return string . Join ( " " , _MiddleList ) ; }
64
- }
55
+ public string Middle => string . Join ( " " , _MiddleList ) ;
65
56
66
- public string Last
67
- {
68
- get { return string . Join ( " " , _LastList ) ; }
69
- }
57
+ public string Last => string . Join ( " " , _LastList ) ;
70
58
71
- public string Suffix
72
- {
73
- get { return string . Join ( " " , _SuffixList ) ; }
74
- }
59
+ public string Suffix => string . Join ( " " , _SuffixList ) ;
75
60
76
- public string Nickname
77
- {
78
- get { return string . Join ( " " , _NicknameList ) ; }
79
- }
61
+ public string Nickname => string . Join ( " " , _NicknameList ) ;
80
62
81
63
/// <summary>
82
64
/// If <see cref="ParseMultipleNames"/> is true and the input contains "&" or "and", the additional
@@ -86,17 +68,8 @@ public string Nickname
86
68
/// </summary>
87
69
public HumanName AdditionalName { get ; private set ; }
88
70
89
- //public string LastBase { get; private set; }
90
- public string LastBase
91
- {
92
- get { return string . Join ( " " , _LastBaseList ) ; }
93
- }
94
-
95
- //public string LastPrefixes { get; private set; }
96
- public string LastPrefixes
97
- {
98
- get { return string . Join ( " " , _LastPrefixList ) ; }
99
- }
71
+ public string LastBase => string . Join ( " " , _LastBaseList ) ;
72
+ public string LastPrefixes => string . Join ( " " , _LastPrefixList ) ;
100
73
#endregion
101
74
102
75
private string _FullName , _OriginalName ;
@@ -109,14 +82,17 @@ public string LastPrefixes
109
82
private IList < string > _NicknameList ;
110
83
private IList < string > _LastBaseList ;
111
84
private IList < string > _LastPrefixList ;
85
+ private Prefer prefs ;
112
86
113
- public HumanName ( string fullName )
87
+ public HumanName ( string fullName , Prefer prefs = Prefer . Default )
114
88
{
115
89
if ( fullName == null )
116
90
{
117
91
throw new ArgumentNullException ( "fullName" ) ;
118
92
}
119
93
94
+ this . prefs = prefs ;
95
+
120
96
FullName = fullName ;
121
97
}
122
98
@@ -300,7 +276,21 @@ private void PostProcessLastname()
300
276
prefixCount ++ ;
301
277
}
302
278
303
- _LastPrefixList = words . Take ( prefixCount ) . ToList ( ) ;
279
+ if ( this . prefs . HasFlag ( Prefer . FirstOverPrefix )
280
+ && this . _FirstList . Count == 0
281
+ && prefixCount == 1
282
+ && words . Count > 1 )
283
+ {
284
+ _FirstList = words . Take ( 1 ) . ToList ( ) ;
285
+
286
+ _LastList = words . Skip ( 1 ) . ToList ( ) ;
287
+ }
288
+ else
289
+ {
290
+
291
+ _LastPrefixList = words . Take ( prefixCount ) . ToList ( ) ;
292
+ }
293
+
304
294
_LastBaseList = words . Skip ( prefixCount ) . ToList ( ) ;
305
295
}
306
296
0 commit comments