-1

すべてのリストエントリの内容をテストしtextQuery.Textてヒットした場合は、ListView という名前の 4 つの列に書き込むにはどうすればよいlistResxですか?

List<TransResource> MasterList = new List<TransResource>();

foreach (TransResource x in resources.Values)
{
     MasterList.Add(x);
}
...
public class TransResource
{
    public string id {get; set;}
    public string en {get; set;}
    public string fr {get; set;}
    public string es {get; set;}
}
4

3 に答える 3

1
var resultList = MasterList.Where(x => x.id == textQuery.Text || x.en == textQuery.Text || x.fr == textQuery.Text || x.es == textQuery.Text).ToList();

これにより、結果の一致リストが小さくなります。そこから取れますか?

于 2013-03-15T21:43:32.623 に答える
0
string keyword = textQuery.Text;

var hitsQuery = from i in MasterList
                where i.en == keyword ||
                      i.es == keyword ||
                      i.fr == keyword ||
                      i.id == keyword
                select i;

var hits = hitsQuery.ToList();

histになりますList<TransResource>ListViewこれを使用して、たとえばDataSourceプロパティを使用してデータを入力できます。

listResx.DataSource = hits;
listResx.DataBind();
于 2013-03-15T21:45:37.003 に答える
0

これを試して:

var matches = resources.Values.Where(x=>x.id==txtQuery.Text ||
                                        x.en==txtQuery.Text ||
                                        x.fr==txtQuery.Text ||
                                        x.es==txtQuery.Text);

foreach(var item in matches)
{   
   string displayItem = item.id + " " + item.en;
   listResx.Items.Add(new ListViewItem(displayItem));
}

または、より少ないコード行で実行します。

foreach(var item in resources.Values.Where(x=>x.id==txtQuery.Text ||
                                              x.en==txtQuery.Text ||
                                              x.fr==txtQuery.Text ||
                                              x.es==txtQuery.Text))
{   
   string displayItem = item.id + " " + item.en;
   listResx.Items.Add(new ListViewItem(displayItem));
}
于 2013-03-15T21:45:41.743 に答える