C# 如何通过定义每个条目的键和值在C中创建数组?
我需要创建一个数组,从数据库中读取数据,然后创建一个包含2列的数组 为了在PHP中实现这一点,下面是我所做的C# 如何通过定义每个条目的键和值在C中创建数组?,c#,arrays,multidimensional-array,C#,Arrays,Multidimensional Array,我需要创建一个数组,从数据库中读取数据,然后创建一个包含2列的数组 为了在PHP中实现这一点,下面是我所做的 private function _getSystemRules() { $rules = $this->db->getDataSet('SELECT SQL_CACHE section_name, privilege_key, privilege_value FROM user_privileg
private function _getSystemRules()
{
$rules = $this->db->getDataSet('SELECT SQL_CACHE section_name, privilege_key, privilege_value
FROM user_privileges
WHERE status = 1
ORDER BY section_name');
foreach($rules as $rule) {
$this->rolesList[$rule['section_name']][$rule['privilege_key']] = $rule['privilege_value'];
}
}
更新
最终的数组将如下所示
Array
(
[accounts] => Array
(
[can_own_account] => 4
[can_view_summary] => 64
[can_update_critical] => 32
[can_update_important] => 16
[can_update_basic] => 8
[can_change_owner] => 2
[can_use] => 1
)
[account_phones] => Array
(
[can_add] => 2
[can_edit] => 8
[can_change_status] => 4
[can_view] => 1
[can_change_primary] => 16
)
[contacts] => Array
(
[can_change_status] => 16
[can_change_global] => 8
[can_add] => 32
[can_view] => 2
[can_change_primary] => 1
[can_edit] => 4
)
[manage_accounts] => Array
(
[can_use] => 1
[can_update_owner] => 2
[can_update_dnc_status] => 4
[can_update_internally_blocked_status] => 8
)
[manage_phone_calls] => Array
(
[can_change_owner] => 4
[can_purge] => 8
[can_change_due_datetime] => 16
[can_use] => 1
[can_approve] => 2
[can_change_urgency_level] => 32
)
[notification] => Array
(
[can_use] => 1
)
[other_contacts] => Array
(
[can_save_contact] => 128
[can_purge_self_created_notes_only] => 32
[can_purge_all_notes] => 16
[can_edit_self_created_notes_only] => 8
[can_create] => 2
[can_use] => 1
[can_edit_all_notes] => 4
[can_save_note] => 64
)
[phone_calls] => Array
(
[can_use] => 1
[can_view] => 2
[can_own_phone] => 4096
[can_view_client_history] => 2048
[can_view_history] => 1024
[can_unpurge] => 512
[can_edit_completed] => 256
[can_complete_owned_only] => 64
[can_edit_open] => 128
[can_complete_any] => 32
[can_purge] => 16
[can_insert] => 8
[can_update] => 4
[can_create_call_for_others] => 8192
[can_create_new_call] => 16384
)
[phone_call_views] => Array
(
[can_use] => 1
[can_create] => 2
[can_list_active] => 4
[can_list_inactive] => 8
[can_edit] => 16
[can_disable] => 32
[can_enable] => 64
)
[system_security] => Array
(
[can_change_client] => 1
)
[voice_of_client] => Array
(
[can_edit] => 4
[can_submit] => 2
[can_use] => 1
[can_purge] => 8
[can_view_completed] => 16
)
)
根据下面的反馈,我正在尝试使用Dictionary类
这是我当前的代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using MySql.Data.MySqlClient;
namespace POS
{
class Roles
{
static readonly Regex binary = new Regex("^[01]{1,32}$", RegexOptions.Compiled);
private Dictionary<string, string[]> permissionList = new Dictionary<string, string[]>();
public Roles()
{
this._definePermissions();
}
private int _BinToInt(string str)
{
int val = -1;
if (binary.IsMatch(str))
{
val = Convert.ToInt32(str, 2);
}
return val;
}
private string _IntToBin(int number)
{
return Convert.ToString(number, 2);
}
private void _definePermissions()
{
var db = new dbConnetion();
string sql = " SELECT SQL_CACHE sectionName, permissionKey, permissionValue "
+ " FROM role_permissions "
+ " WHERE status = 'enabled' "
+ " ORDER BY sectionName ";
foreach (var i in db.getData(sql, null, r => new SystemPermissions()
{
sectionName = r["sectionName"].ToString()
, permissionKey = r["permissionKey"].ToString()
, permissionValue = r["permissionValue"].ToString()
}
)
)
{
permissionList["sectionName"] = new[] {i.sectionName};
permissionList["permissionValue"] = new[] {this._BinToInt(i.permissionValue).ToString()};
}
}
}
class SystemPermissions{
public string sectionName;
public string permissionKey;
public string permissionValue;
}
}
如何使用c完成同样的事情
如何通过定义每个条目的键和值在C中创建数组
在.NET中,这就是类。例如:
var dictionary = new Dictionary<string, string>();
dictionary["foo"] = "bar";
dictionary["baz"] = "bazinga";
您正在寻找C语言中的,您可以使用字典:
你试过谷歌c键值吗?我不确定我是否清楚这一点。但是我如何定义多维数组,其中第一个键是section\u name id,第二个键是privilege\u key,位置=privilege\u值?字典的键可以是任何对象。例如,您可以拥有一个具有两个属性的自定义对象:Key1和Key2。那么它将是dictionary[foo]=new someCustomClass{Key1=section\u name,Key2=privilege\u value}?在您的示例中,您使用了一个自定义类作为值,这也是可能的。我已经更新了我的问题,以显示最终数组的外观
Dictionary<string, string> dictionary = new Dictionary<string, string>();
dictionary.Add("a", "c");
dictionary.Add("c", "d");