0

伙计,我知道如何从我的列表中添加数据,但问题是我如何检索它......?

id 在 GlobalVar.cs 中删除了我的列表:

public static List<string> ViolationRefNumToPrint = new List<string>();

这是将数据添加到我的列表中的代码.....

    GlobalVar.ViolationRefNumToPrint.Clear();
    for (int i = 0; i < lvviolations.Items.Count; i++)
    {
        GlobalVar.ViolationRefNumToPrint.Add(((EmpViolationObject)lvviolations.Items[i]).VioRefNum);
    }

我的问题是如何将它检索到我的列表中...... :(

编辑

Guyz 我使用了下面的代码。这是由@evanmcdonnal 给出的。实际上我要在我的报告中使用它......我已经使用了DocumentViewer

这是我的代码....

        ReportDocument reportDocument = new ReportDocument();

        string ats = new DirectoryInfo(Environment.CurrentDirectory).Parent.Parent.FullName;

        StreamReader reader = new StreamReader(new FileStream(ats.ToString() + @"\Template\ReportViolation.xaml", FileMode.Open, FileAccess.Read));

        reportDocument.XamlData = reader.ReadToEnd();
        reportDocument.XamlImagePath = Path.Combine(ats.ToString(), @"Template\");
        reader.Close();


        DateTime dateTimeStart = DateTime.Now; // start time measure here
        List<ReportData> listData = new List<ReportData>();
        int i = 0;

        foreach (string item in GlobalVar.ViolationRefNumToPrint)
        {
            ReportData data = new ReportData();

            data.ReportDocumentValues.Add("PrintDate", DateTime.Now); 
            data.ReportDocumentValues.Add("EmpIDNum", NewIDNumber.ToString()); 
            data.ReportDocumentValues.Add("EmpName", NewEmpName.ToString()); 
            data.ReportDocumentValues.Add("EmpPosition", NewPosition.ToString()); 

            data.ReportDocumentValues.Add("PageNumber",(i + 1)); 
            data.ReportDocumentValues.Add("PageCount", GlobalVar.ViolationRefNumToPrint.Count.ToString()); 

            listData.Add(data);
            i++;
        }

        XpsDocument xps = reportDocument.CreateXpsDocument(listData);
        documentViewer.Document = xps.GetFixedDocumentSequence();

        // show the elapsed time in window title
        Title += " - generated in " + (DateTime.Now - dateTimeStart).TotalMilliseconds + "ms";

这里的问题是它给了我这样的错误....

在此处输入图像描述

4

1 回答 1

0

您必须遍历它并搜索您想要的项目。

foreach (string item in ViolationRefNumToPrint)
{
      Console.Out(item);
}

相反,如果你想要一个特定的项目(假设你的列表有对象调用它string itemImLookinFor = "some nonsense";循环它并有条件匹配;

foreach (MyObject item in ViolationRefNumToPrint)
{
      if (item.name == itemImLookinFor)
          //do something with this object
}
于 2012-11-16T02:13:30.573 回答