を使用して、リスト内の要素の検索簡素化I、次のコードを持っている:私が知りたいのですがどのようなは、おそらくLINQ
class TestClass
{
public string StringValue {
get; set;
}
public int IntValue {
get; set;
}
}
class MainClass
{
private readonly List<TestClass> MyList;
public MainClass()
{
MyList = new List<TestClass>();
}
public void RemoveTestClass(string strValue)
{
int ndx = 0;
while (ndx < MyList.Count)
{
if (MyList[ndx].StringValue.Equals(strValue))
break;
ndx++;
}
MyList.RemoveAt(ndx);
}
public void RemoveTestClass(int intValue)
{
int ndx = 0;
while (ndx < MyList.Count)
{
if (MyList[ndx].IntValue == intValue)
break;
ndx++;
}
MyList.RemoveAt(ndx);
}
}
おそらくwhile
ループを置き換えるために、LINQを使用して、簡単な方法があればあります私はやっているように、各要素を反復するのではなく、2つのRemoveTestClass
の関数で?
[List.Remove](http://msdn.microsoft.com/en-us/library/cd666k3e%28v=VS.100%29.aspx)と 'List.Find'では' List.FindIndex'あなたはできませんでしたか? –
@TimSchmelterしかし、一致するアイテムが見つからない場合、findはexecptionをスローします。 – Fischermaen
@Fischermaen:しかし、@Markは 'i = -1'の場合を扱っています。 'List.Find'が' null'である場合も処理できます。 –