我是Qt的初学者,我更习惯于C#编程。所以我的问题是如何在Qt中实现以下C#代码:
public class MyObject
{
private string myproperty;
public string Myproperty
{
get { return myproperty; }
set { myproperty = value; }
}
}
private void button1_Click(object sender, EventArgs e)
{
List<MyObject> myobjectlist = new List<MyObject>();
MyObject selectedobject = myobjectlist.Find(p => p.Myproperty == "Some name");
}
Qt是否有可能像上面的代码那样从列表中检索对象?
这与Qt本身无关。如果可以使用C ++ 11,请使用lambda,就像在C#中一样:
auto itObj = std::find_if(
myobjectlist.begin(), myobjectlist.end(),
[](MyObject o) { return o.myproperty() == "Some name"; }
);
if (itObj != myobjectlist.end())
{
// object was found, use *itObj (or itObj->) to access it/its members
}
else
{
// object was not found
}
如果没有C ++ 11,则必须手工创建一个operator()
用作谓词的类,或者for
手动编写一个循环。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句