这是目前使用的2个一维数组代码//查找关键字
//search 用于存放影片名
//search1 存放地址
TreeNode tnRet = null;
List<string> search = new List<string>();//数组1
List<string> search1 = new List<string>();//数组2
int i = 0;
int k;
foreach (TreeNode tn in treeView1.Nodes)
{
tnRet = FindNode(tn, "搜索结果");
if (tnRet != null)
{
tn.Remove();
}
tnRet = FindNode(tn, word);
if (tnRet != null)
{
search.Add(tnRet.Text);//影片名
search1.Add(tnRet.Tag.ToString());//影片地址
i++;
}
}
if (i > 0) //添加搜索结果到新节点
{
TreeNode trRoot = new TreeNode("搜索结果("+i+"条记录)");//添加到跟节点
this.treeView1.Nodes.Add(trRoot);
for (k = 0; k < i; k++)
{
TreeNode trNode = new TreeNode(search[k]);//影片名
trNode.Tag = search1[k];//影片地址
trRoot.Nodes.Add(trNode);
}
}现在使用这样的代码是正常的,由于搜索数据有重复,我想把它换成1个2维数组,
搜索结果是这样的:
tnRet.Text ="影片名1"
tnRet.Tag="地址1"tnRet.Text ="影片名2"
tnRet.Tag="地址2"tnRet.Text ="影片名3"
tnRet.Tag="地址3"tnRet.Text ="影片名1"
tnRet.Tag="地址1"当中可能有2条或者3条重复一样的数据我最终的目的就是想把搜索结果去重复后再添加到treeview节点里,请问怎么做?麻烦给出具体代码,对数组还不太明白。
//search 用于存放影片名
//search1 存放地址
TreeNode tnRet = null;
List<string> search = new List<string>();//数组1
List<string> search1 = new List<string>();//数组2
int i = 0;
int k;
foreach (TreeNode tn in treeView1.Nodes)
{
tnRet = FindNode(tn, "搜索结果");
if (tnRet != null)
{
tn.Remove();
}
tnRet = FindNode(tn, word);
if (tnRet != null)
{
search.Add(tnRet.Text);//影片名
search1.Add(tnRet.Tag.ToString());//影片地址
i++;
}
}
if (i > 0) //添加搜索结果到新节点
{
TreeNode trRoot = new TreeNode("搜索结果("+i+"条记录)");//添加到跟节点
this.treeView1.Nodes.Add(trRoot);
for (k = 0; k < i; k++)
{
TreeNode trNode = new TreeNode(search[k]);//影片名
trNode.Tag = search1[k];//影片地址
trRoot.Nodes.Add(trNode);
}
}现在使用这样的代码是正常的,由于搜索数据有重复,我想把它换成1个2维数组,
搜索结果是这样的:
tnRet.Text ="影片名1"
tnRet.Tag="地址1"tnRet.Text ="影片名2"
tnRet.Tag="地址2"tnRet.Text ="影片名3"
tnRet.Tag="地址3"tnRet.Text ="影片名1"
tnRet.Tag="地址1"当中可能有2条或者3条重复一样的数据我最终的目的就是想把搜索结果去重复后再添加到treeview节点里,请问怎么做?麻烦给出具体代码,对数组还不太明白。
public class SearchResult
{
public string Movie {get;set;}
public string URL {get;set;} public override bool Equals(object obj)
{
SearchResult sr = obj as SearchResult;
if (sr != null)
{
return sr.Movie == this.Movie && sr.URL == this.URL;
}
else
{
return false;
}
} //override GetHashCode to avoid compile warning
public override int GetHashCode()
{
return base.GetHashCode();
}
} //搜索代码
List<SearchResult> result = new List<SearchResult>();
foreach (TreeNode tn in treeView1.Nodes)
{
TreeNode tnRet = FindNode(tn, word);
if (tnRet != null)
{
SearchResult sr = new SearchResult()
{
Movie = tnRet.Text,
URL = tnRet.Tag.ToString()
}; if (!result.Contains(sr))
{
result.Add(sr);
}
}
if (result.Count > 0) //添加搜索结果到新节点
{
//todo
}
List<string> l2 = new List<string>();
List<string> l3 = new List<string>(); l.Add(l1);
l.Add(l2);
l.Add(l3);
你不该研究不出来,已经是很简单的代码了.找到的结果都放到List中,你可以遍历List再添加到你的TreeView中去
List<SearchResult> result = new List<SearchResult>();
if (result.Count > 0) //添加搜索结果到新节点
{
TreeNode trRoot = new TreeNode("搜索结果(" + i + "条记录)");//添加到跟节点
treeView1.Nodes.Add(trRoot);
foreach (SearchResult sr in result)
{
TreeNode trNode = new TreeNode(sr.Movie);//影片名
trNode.Tag =sr.URL//影片地址
trRoot.Nodes.Add(trNode);
}
}
for (int i = 0; i < counts.GetLongLength(0); i++) {
var value = from v in counts[i] select v;
int s = Array.FindIndex(value.ToArray(), v => v.Equals(value.Max()));
}