以下の形式でユーザーのリストを姓で並べ替えるにはどうすればよいですか?最初の名前でアルファベット順のC#並べ替えリスト
mylist.Sort();
種類first.mi.last
first.last
、それは私が何をしたいのかではありません。どうにかRegExを使う必要がありますか?
以下の形式でユーザーのリストを姓で並べ替えるにはどうすればよいですか?最初の名前でアルファベット順のC#並べ替えリスト
mylist.Sort();
種類first.mi.last
first.last
、それは私が何をしたいのかではありません。どうにかRegExを使う必要がありますか?
あなたの名前は単純な文字列このように、姓と名のプロパティ)でないオブジェクト:あなたのリストには何が
c.a
b
a.c
あなたはあなたのユーザーを注文するLinq
を使用することができます:あなたが同じ姓を持つ
using System.Linq;
mylist.OrderBy(x => x.LastName);
場合は、ミドルネームでユーザーを注文することができます。あなたは同じミドルネームを持っている場合は、最初の名前でユーザーを注文することができます。
mylist.OrderBy(x => x.LastName).ThenBy(x => x.MiddleName).ThenBy(x => x.FirstName);
私のリストはリストとして定義されています
@ Dawn555はい。 'FirstName'、' LastName'、および 'MiddleName'という属性を持つ型のリストが必要になります。これに対して文字列型は機能しません。 – dckuehn
@ Dawn555はい、 'LastName'、' MiddleName'、および 'FirstName'の3つのプロパティを持つ' User'クラスを作成する必要があります。そして、あなたは 'List
あなたの場所にをソートしたい場合は、ケースmylist
で比較演算
mylist.Sort((left, right) => string.Compare(left.LastName, right.LastName));
をspecifingしようとすると、string
項目が含まれている、あなたはLastName
を抽出する必要があります。
private static String LastName(string value) {
if (string.IsNullOrEmpty(value))
return value;
int p = value.LastIndexOf('.');
return value.SubString(p + 1);
}
...
mylist.Sort((left, right) => string.Compare(LastName(left), LastName(right)));
:
出力:
あなたは、このようにそれらを注文することができますか? –