c# - 什么相当于 c# 中的 Microsoft.VisualBasic.Collection?

标签 c# vb.net

我有一个采用存储过程名称和 Microsoft.VisualBasic.Collection 的方法?我正在引用一个 vb 项目,在该项目中我必须将一个集合传递给此方法,但我当前所在的项目是在 c# 中,所以我不清楚我可以将什么传递给该方法?

这是 vb 调用:

public void CallStoredProc(string spName, Microsoft.VisualBasic.Collection params);

在我的 C# 应用程序中,我需要将此称为将适当的 C# 对象传递给参数。

最佳答案

一种选择是直接使用 C# 中的 Collection 类型。这是 Microsoft.VisualBasic.dll 程序集中的标准类型,可用于任何 .Net 语言。

标准 BCL 中最接近的集合是 HashtableHashtableCollection 之间的转换应该相当简单

例如

using VBCollection = Microsoft.VisualBasic.Collection;
...
public static VBCollection ToVBCollection(this Hashtable table) {
  var collection = new VBCollection();
  foreach (var pair in table) {
    // Note: The Add method in collection takes value then key.
    collection.Add(pair.Value, pair.Key);  
  }
  return collection;
}

注意:虽然这不是直接映射。 Collection 类型支持许多 Hashtable 不喜欢的操作:值前后、按数字或键索引等……我的方法是使用一个在整个应用程序中一致地键入并适本地更改 C# 或 VB 项目

关于c# - 什么相当于 c# 中的 Microsoft.VisualBasic.Collection?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6115194/

相关文章:

c# - 从 catch block 中跳出 for 循环

c# - Visual Studio 2015,缺少库 System.Xml.Linq

c# - List<T> 定义为类的成员

vb.net - 如何检索最后一行单元格值

c# - 如何渲染音频波形?

c# - Marshall结构通过sendmessage将其传递给delphi记录

mysql - 修复VB.NET错误 "Connection must be valid and open"

VB.Net 背景渐变使用 LinearGradientBrush 和显示图像

c# - session 状态跨子域共享 session ,VB.NET 网站 C# MVC 4 应用程序

vb.net - 排序列表(MaskedTextBox)