public class Lines
{
private int Id = 0;
private bool IsTouching = false;
private TouchPoint sPt = null;
private TouchPoint ePt = null;
public TouchPoint startPt
{
set { sPt = value; }
get { return sPt; }
}
public TouchPoint endPt
{
set { ePt = value; }
get { return ePt; }
}
public int touchId
{
set { Id = value; }
get { return Id; }
}
public bool Touching
{
set { IsTouching = value; }
get { return IsTouching; }
}
}List<Lines> TouchList = new List<Lines>();我是学vc的, 有些东西不大会, 请达人帮忙, 这个find在那么用?
我想将startPt作为key查找..
private void Window_TouchDown(object sender, TouchEventArgs e)
{
ContentControl image = sender as ContentControl;
if (image == null)
return; TouchPoint touchPt = e.TouchDevice.GetTouchPoint(image);
if (TouchList.Find(touchPt) == -1)//编译错误
{
Lines myline = new Lines();
myline.touchId = e.TouchDevice.Id;
myline.startPt = touchPt;
myline.Touching = true;
TouchList.Add(myline);
}
}
{
private int Id = 0;
private bool IsTouching = false;
private TouchPoint sPt = null;
private TouchPoint ePt = null;
public TouchPoint startPt
{
set { sPt = value; }
get { return sPt; }
}
public TouchPoint endPt
{
set { ePt = value; }
get { return ePt; }
}
public int touchId
{
set { Id = value; }
get { return Id; }
}
public bool Touching
{
set { IsTouching = value; }
get { return IsTouching; }
}
}List<Lines> TouchList = new List<Lines>();我是学vc的, 有些东西不大会, 请达人帮忙, 这个find在那么用?
我想将startPt作为key查找..
private void Window_TouchDown(object sender, TouchEventArgs e)
{
ContentControl image = sender as ContentControl;
if (image == null)
return; TouchPoint touchPt = e.TouchDevice.GetTouchPoint(image);
if (TouchList.Find(touchPt) == -1)//编译错误
{
Lines myline = new Lines();
myline.touchId = e.TouchDevice.Id;
myline.startPt = touchPt;
myline.Touching = true;
TouchList.Add(myline);
}
}
if (!TouchList.Contains(touchPt))
Find是的参数是个委托,例如
TouchList.Find(t=>t.touchID==e.TouchDevice.ID)
这样返回touchID和e.TouchDevice.ID相同的对象,如果没找到好像会抛异常,用FindOrDefault不会抛异常,没找到返回null
list.FindAll(s => s.Contains(Str));
FindIndex方法,然后判断返回的索引是否为非负
zgke, kolosi
我知道类型不对,我的目的是想查找这个类型下的startPt成员,然后返回下标. 另我用的是2010,找不到
Hashtable这个东东..to
leon0905
find的参数是一个判断条件? 这个判断条件要怎么写??to
wuyq11
按大大的判断条件我改了下,但是编译不过..
郁闷啊
TouchList.FindAll(delegate(Lines findline){return findline.startPt;});
List<Lines> TouchList = new List<Lines>(); bool findTouchPt(Lines list)
{
return list.startPt.Equals(startPt);
} private void Window_TouchMove(object sender, TouchEventArgs e)
{
int nIndex = TouchList.FindIndex(new Predicate<Lines>(findTouchPt));
if (nIndex != -1)
{
if (TouchList[nIndex].Touching)
{
ContentControl image = sender as ContentControl;
if (image == null)
return; TouchPoint curPt = e.TouchDevice.GetTouchPoint(image); TouchDrawLine(TouchList[nIndex].startPt, curPt);
TouchList[nIndex].startPt = curPt;
}
}
}
public class Lines
{
public int Id { get; set; }
public bool IsTouching { get; set; }
public TouchPoint sPt { get; set; }
public TouchPoint ePt { get; set; }
} List<Lines> TouchList = new List<Lines>(); private void Window_TouchDown(object sender, TouchEventArgs e)
{
ContentControl image = sender as ContentControl;
if (image == null)
return; TouchPoint touchPt = e.TouchDevice.GetTouchPoint(image); Lines lines = TouchList.Find(l => l != null && l.TouchPoint==touchPt);//不知道TouchPoint是不是值类型
if (lines == null)
{
Lines myline = new Lines();
myline.touchId = e.TouchDevice.Id;
myline.startPt = touchPt;
myline.Touching = true;
TouchList.Add(myline);
}
}