标签: ordereddictionary

psobject 属性集失去顺序 - 如何保留顺序?

我正在使用 Export-Excel,并且我正在使用的 psobject 属性集正在重新排序,这使得我的 Excel 标题顺序错误。

这是我的代码:

       foreach ($errCode in $ErrCodes) 
       {
          $resultHelp = [System.Collections.Generic.List[psobject]]::new() 
          Write-Host "another:"
          $err = $errCode #get each error code to lookup in mdb file
          Write-Host $err
          $resultHelp = ProcessHelpMDB -mdbLookupError $errCode -mdbFilePath $basePathFull -mdbDeviceSeries $Ver #######

          $result = [ordered] @{
                  "ScreenNumber" = ""
                  "KKey" = ""
                  "EnglishUS" = ""
                  "PictureID" = ""
                  "ImageFound" =""
                  "ImageFileName" = ""
          } #this didn't do anything
          #loop thru results from Help MDB file for $errCode
          ###this loses order:
          $result …
Run Code Online (Sandbox Code Playgroud)

powershell ordereddictionary export-to-excel

1
推荐指数
1
解决办法
1240
查看次数

如何在方法中返回OrderedDictionary?

我想在我的方法中返回一个OrderedDictionary,但是我的代码出错...

我不知道为什么我不能这样做:

public OrderedDictionary getAllPortsInformations()
        {

            OrderedDictionary SerialPort = filtreXml("/catalog/cd/SerialPort", "SerialPort");
            OrderedDictionary BaudRate = filtreXml("/catalog/cd/BaudRate", "BaudRate");
            OrderedDictionary DataBits = filtreXml("/catalog/cd/DataBits", "DataBits");
            OrderedDictionary StopBits = filtreXml("/catalog/cd/StopBits", "StopBits");
            OrderedDictionary ParityBits = filtreXml("/catalog/cd/ParityBits", "ParityBits");
            OrderedDictionary ReadTimeout = filtreXml("/catalog/cd/ReadTimeout", "ReadTimeout");
            OrderedDictionary WriteTimeout = filtreXml("/catalog/cd/WriteTimeout", "WriteTimeout");
            OrderedDictionary PinCode = filtreXml("/catalog/cd/PinCode", "PinCode");
            OrderedDictionary output = new OrderedDictionary();


            foreach (DictionaryEntry sp in SerialPort)
                output.Add(sp.Key, sp.Value);
            foreach (DictionaryEntry br in BaudRate)
                output.Add(br.Key, br.Value);
            foreach (DictionaryEntry db in DataBits)
                output.Add(db.Key, db.Value);
            foreach (DictionaryEntry sb in StopBits)
                output.Add(sb.Key, sb.Value);
            foreach …
Run Code Online (Sandbox Code Playgroud)

.net c# ordereddictionary

0
推荐指数
1
解决办法
153
查看次数

将OrderedDict转换为正常的dict保留顺序?

如何OrderedDict在保留相同顺序的同时将转换为普通字典?

我问这个的原因是因为当我从API获取数据时,我得到一个JSON字符串,我用它json.loads(str)来返回一个字典.返回的这个字典json.loads(...)只是乱序,随机排序.另外,我读过这个OrderedDict工作很慢,所以我想使用与原始JSON字符串相同顺序的常规字典.

稍微偏离主题:无论如何都要将JSON字符串转换为dict,json.loads(...)同时保持相同的顺序而不使用collections.OrderedDict

python string json dictionary ordereddictionary

0
推荐指数
1
解决办法
3041
查看次数

C#:从 OrderedDictionary.Keys 构建 HashSet 的更优雅的方法?

我有一个OrderedDictionary d充满字符串的键(+ 对象作为值)。我需要将字典键复制到HashSet<string> hs.

我现在这样做:

OrderedDictionary d = new OrderedDictionary();
// ... filling d ...

HashSet<string> hs = new HashSet<string>();

foreach (string item in d.Keys)
    hs.Add(item);
Run Code Online (Sandbox Code Playgroud)

我知道有.CopyTo()字典的方法来填充字符串数组。有没有更优雅的方法将密钥也复制到 a HashSet

更新:似乎建议new HashSet<string>(d.Keys.Cast<string>());不适用于OrderedDictionary. 编译器(VS2019 Community Ed.)说...

错误 CS1929“ICollection”不包含“Cast”的定义,并且最佳扩展方法重载“EnumerableRowCollectionExtensions.Cast(EnumerableRowCollection)”需要“EnumerableRowCollection”类型的接收器

在工具提示

更新 2:上述更新在using System.Linq;添加时起作用。

c# ordereddictionary hashset

0
推荐指数
1
解决办法
131
查看次数

订购dict默认?

是否有可能使默认的dict文字创建有序的dicts而不是无序的?

我想键入复杂的嵌套配置,如:

config = {
   'train': {
       'speed': 0.001,
       'initial_values': [1, 2, 3]
   },
   'model': {
...
   }
}
Run Code Online (Sandbox Code Playgroud)

并且想要写一堆括号

config = OrderedDict([(
    'train', OrderedDict([(
       'speed', 0.001), (
       'initial_values', [1, 2, 3])]),(
    'model', OrderedDict([(
...
Run Code Online (Sandbox Code Playgroud)

绝对是无法解决的.

关于为什么我的愿望不好,请不要有哲学.


好的,目前我会写一些像:

def od(*args):
   return OrderedDict([(args[i], args[i+1]) for i in range(0, len(args), 2)])

config = od(
    'train', od(
        'speed', 0.001,
        'initial_values', [1, 2, 3]
     ),
     'model', od(
    ...
     )
)
Run Code Online (Sandbox Code Playgroud)

python dictionary ordereddictionary literals

-1
推荐指数
1
解决办法
337
查看次数