最近、特にフィルタリングや配列の拡張を行っているときに、List<SomeType>
- >SomeType[]
の変換をたくさん行ってきました。例えば、フィルタリングのためにC#配列の拡張とフィルタリング
:
// filter the list
var memberList = new List<MemberType>();
foreach (var member in members)
{
if (member.someProperty != sentinalValue)
{
memberList.Add(member);
}
}
// overwrite the old array with a new on dimensioned correctly
members = new MemberType[memberList.Count];
memberList.CopyTo(members);
または拡張:
// create the new member
var newMember = new MemeberType();
// create a new array to hold the extended members
newMembers = new MemberType[members.Length + 1];
// copy over the old members
members.CopyTo(newMembers, 0);
// add the new member
newMembers[members.Length] = newMember;
// overwrite old array with new array containing new member
members = newMembers;
私が原因で私たちが使用するXMLシリアル化クラスの代わりに素敵なジェネリックコレクションの(のmemberType [])配列を使用する必要があります。私は、この単純なことをやるより良い方法があると確信しています。もしあなたがそれを知っているなら(それは過度の複雑さを加えないでください)私に教えてください。
Linqは私が使いたいと思っていたことを確信していました。拡張メソッドを使用している配列では実現できませんでした。私はintellisenseに示されている利用可能な方法を読んで、私が探していたものを見つけなければなりませんでしたが、stackoverflowはこの特定の質問よりも速かったです。 –