public class EcImageWrapper
{
//etc...
public IQueryable<EcFieldWrapper> ListOfFields
{
get
{
//logic here
return this.listOfFields.AsQueryable();
}
}
public EcFieldWrapper FindBy(Expression<Func<EcFieldWrapper, int, bool>> predicate)
{
return this.ListOfFields.Where(predicate).SingleOrDefault();
}
public EcFieldWrapper FindByName(string fieldName)
{
return this.FindBy(x => x.Name.ToUpper() == fieldName.ToUpper());
//error here, wanting 3 arguments
//which makes sense as the above Expression has 3
//but i don't know how to get around this
}
何らかの理由で、Expression> では 3 つの引数を使用する必要があります。過去には、問題のインスタンスに 2 つしか使用していませんでした。ただし、このインスタンス内のコレクションで検索を実行したいと考えています。
次のエラーが表示されます。
Delegate 'System.Func<MSDORCaptureUE.Wrappers.EcFieldWrapper,int,bool>' does not take 1 arguments
The best overloaded method match for 'CaptureUE.Wrappers.EcImageWrapper.FindBy(System.Linq.Expressions.Expression<System.Func<CaptureUE.Wrappers.EcFieldWrapper,int,bool>>)' has some invalid arguments
Argument 1: cannot convert from 'string' to 'System.Linq.Expressions.Expression<System.Func<CaptureUE.Wrappers.EcFieldWrapper,int,bool>>'
望ましい結果: クラス EcImageWrapper のインスタンス内で戻り型 EcFieldWrapper の述語と EcFieldWrapper の述語型を使用できるようにすること
なぜ3が必要なのですか?なぜint?