【发布时间】:2014-11-26 14:13:28
【问题描述】:
我想使用 foreach k, v 对循环来遍历多维列表,并将这些值输出到其他地方。代码如下:
public class LogTable
{
public string FunctionName { get; set; }
public string LogTime { get; set; }
}
public class TableVars
{
public List<LogTable> loggingTable { get; set; }
public TableVars()
{
loggingTable = new List<LogTable>();
}
public void createLogList()
{
loggingTable = new List<LogTable>();
}
}
foreach( KeyValuePair<string, string> kvp in tablevars.loggingTable)
{
// output would go here. I haven't looked it up yet but I assume it's something
// along the lines of var = k var2 = v? Please correct me if I'm wrong.
}
当我在“foreach”上运行鼠标时,我收到一条警告消息 - “无法将类型 'DataObjects.LogTable' 转换为 'System.Collections.Generic.KeyValuePair。我该如何解决这个问题,或者有没有更有效的方法来实现相同的目标?
谢谢!
我应该添加更多上下文,抱歉。我正在尝试返回我通过以下方式添加的属性“FunctionName”和“LogTime”中的两个不同值:
var tablevars = new TableVars(); tablevars.loggingTable.Add(new LogTable { FunctionName = errorvalue, LogTime = logtime });
为了更准确地指定,foreach k, v 循环的目的是获取 FunctionName 和 LogTime 的每个不同属性,并将它们输入到 SQL Server 中的数据库中。这就是为什么区分 k、v(或 FunctionName、LogTime)很重要的原因。再次,如果我错了,请纠正我。
【问题讨论】:
-
您可以通过在迭代
List<LogTable>时将 foreach 循环变量更改为LogTable来解决此问题。为什么你认为它应该是KeyValuePair<string,string>? -
在这种情况下,如何在 List 中的两个不同参数之间指定?我把它想象成这样:
-
简单地访问属性有什么问题?
-
糟糕,抱歉。我正在像这样可视化它 - LogTable = { key = "key" value = "value" } 我认为这是通过使用具有 FunctionName 和 LogTime 的 LogTable 类来完成的
-
我正在尝试将两个不同的属性添加到单独数据库中的两个不同列中。它们需要区别开来。如果我可以在不使用 k、v 的情况下做到这一点,我该怎么做?感谢您的帮助:)
标签: c# list foreach visual-studio-2013 keyvaluepair