C# 在C中显示列表中的数据#
当列表结果为=到1时,我想显示从列表中获得的数据。我需要获取C# 在C中显示列表中的数据#,c#,database,list,C#,Database,List,当列表结果为=到1时,我想显示从列表中获得的数据。我需要获取文件名、标题和热点 有人能帮我吗?我需要帮助的部分在代码的末尾 代码如下: private void PerformSheetLink(String hotspotID, Int32 fileRec) { string nomenclature = dataLayer.GetNomenclature(fileRec, hotspotID); string pattern = @"\((?&
文件名
、标题
和热点
有人能帮我吗?我需要帮助的部分在代码的末尾
代码如下:
private void PerformSheetLink(String hotspotID, Int32 fileRec)
{
string nomenclature = dataLayer.GetNomenclature(fileRec, hotspotID);
string pattern = @"\((?<ProjectRec>\d+(?:_)?\d*?)*\,(?<FileName>[^,]*)\,(?<HotspotID>[^)]*)\)";
Regex regex = new Regex(pattern, RegexOptions.Compiled);
Match m = regex.Match(nomenclature);
//Multiple numenclature exist
if (regex.Matches(nomenclature).Count > 1)
{
List<P2Trace> linkList = new List<P2Trace>();
string fileName, hotspot, title;
MatchCollection mc = regex.Matches(nomenclature);
foreach (Match match in mc)
{
//This match has a Single Project
GroupCollection gc = match.Groups;
if (gc["ProjectRec"].Captures.Count == 1)
{
if ((int)cbModel.SelectedValue == Int32.Parse(gc["ProjectRec"].Value))
{
fileName = String.Format("{0}.cgm", gc["FileName"].Value);
title = dataLayer.GetSheetTitle(fileName);
hotspot = FixHotspotID(gc["HotspotID"].Value);
linkList.Add(new P2Trace { FileName = fileName, HotspotID = hotspot, Title = title });
}
}
else
{
//This match has Multiple Projects
List<Int32> pRecs = GetProjectRecsInList(gc["ProjectRec"].Captures);
if (pRecs.Contains((int)cbModel.SelectedValue))
{
foreach (Int32 projectRecNo in pRecs)
{
if (projectRecNo == (int)cbModel.SelectedValue)
{
fileName = String.Format("{0}.cgm", gc["FileName"].Value);
title = dataLayer.GetSheetTitle(fileName);
hotspot = FixHotspotID(gc["HotspotID"].Value);
linkList.Add(new P2Trace { FileName = fileName, HotspotID = hotspot, Title = title });
}
}
}
}
}
//Link found and collected, perform jump
if (linkList.Count == 1)
{
p2Trace.FileName = linkList. ?????
p2Trace.Title = linkList. ??????
p2Trace.HotspotID= linkList. ??????
jumpTo(p2Trace.FileName, p2Trace.Titel, p2Trace.HotspotID);
}
private void PerformSheetLink(字符串热点,Int32 fileRec)
{
字符串命名法=dataLayer.getNomenclation(fileRec,hospotid);
字符串模式=@“\((?\d+(?:\)\d*?)*\,(?[^,]*)\,(?[^)]*)\”;
Regex Regex=newregex(模式,RegexOptions.Compiled);
匹配m=正则匹配(术语);
//存在多个NUMENCATURE
if(正则表达式匹配(命名法).Count>1)
{
List linkList=新列表();
字符串文件名、热点、标题;
MatchCollection mc=正则表达式匹配(术语);
foreach(在mc中匹配)
{
//这场比赛只有一个项目
GroupCollection gc=match.Groups;
如果(gc[“ProjectRec”].Captures.Count==1)
{
if((int)cbModel.SelectedValue==Int32.Parse(gc[“ProjectRec”].Value))
{
fileName=String.Format(“{0}.cgm”,gc[“fileName”].Value);
title=dataLayer.GetSheetTitle(文件名);
热点=固定热点(gc[“热点”].值);
添加(新的P2Trace{FileName=FileName,hospotid=hospot,Title=Title});
}
}
其他的
{
//这场比赛有多个项目
List pRecs=GetProjectRecsInList(gc[“ProjectRec”].Captures);
if(预含((int)cbModel.SelectedValue))
{
foreach(pRecs中的Int32 projectRecNo)
{
如果(projectRecNo==(int)cbModel.SelectedValue)
{
fileName=String.Format(“{0}.cgm”,gc[“fileName”].Value);
title=dataLayer.GetSheetTitle(文件名);
热点=固定热点(gc[“热点”].值);
添加(新的P2Trace{FileName=FileName,hospotid=hospot,Title=Title});
}
}
}
}
}
//找到并收集链接,执行跳转
如果(linkList.Count==1)
{
p2Trace.FileName=链接列表?????
p2Trace.Title=链接列表??????
p2Trace.HotspotID=链接列表??????
跳转到(p2Trace.FileName、p2Trace.Titel、p2Trace.hospotid);
}
试试这个
if (linkList.Count == 1)
{
var firstItem = linkList[0];
p2Trace.FileName = firstItem.FileName;
p2Trace.Title = firstItem.Title;
p2Trace.HotspotID= firstItem.HostspotID;
jumpTo(p2Trace.FileName, p2Trace.Titel, p2Trace.HotspotID);
}
如果只找到一个匹配项,您是否打算只调用
跳转到
?如果找到两个匹配项,会发生什么?我已经处理好了那部分,我只是没有发布代码。谢谢您的帮助
p2Trace.FileName = linkList[0].FileName;
p2Trace.Title = linkList[0].Title;
p2Trace.HotspotID = linkList[0].HotspotID;