当条件(pred)对其某个类成员(值)成立时,我想更新对象列表(mycapsule,有许多其他成员)。每当我改变一件事情失败时,我都是C#的新手,真的很困惑。 有人可以解决我的代码: 在最佳状态我只得到得到这个错误,但我觉得很多事情都是在我的代码C#,使用委托函数更新列表作为过滤器
The type or namespace name `T' could not be found. Are you missing a using directive or an assembly reference?
这里缺少的是我的代码
using System;
using System.Collections.Generic ;
namespace test
{
class MainClass
{
public static List< mycapsule<int,double> > sample= new List< mycapsule<int,double>>();
public static void Main (string[] args)
{
sample.Add(new mycapsule<int,double> {id=1 , value= 1.2});
update(pred, 12.3);
}
public static bool pred(double x)
{
if (x==2.5) return true;
return false;
}
public class mycapsule<KT, T>
{
public KT id {get ; set; }
public T value { get ; set; }
public int p; // and more
}
public bool update(Func<T, bool> predicate, T i)
{
foreach (var x in sample.FindAll(item => predicate(JustValue(item))))
{
x.value = i ;
}
return true ;
}
public T JustValue(mycapsule<int,T> i)
{
return i.value;
}
}
}
在更新功能,什么是KeyRecord?它应该不是样本? – harshit
是的,你是对的,我只是试图通过更改名称和删除无关的代码来简化它,但我错过了这一个 – user1654052