Класс сериализации C# к XML, где одним из свойств класса является DateTime. Как сделать это свойство в формате ISO?

Вот один из способов:

sorted( lst, key=lambda x: (x.lower(), *map(str.isupper, x)) )
#['A', 'aa', 'aA', 'aaa', 'aaA', 'aAa', 'b', 'B', 'c', 'CC']

Первая сортировка букв без учета регистра. Затем вызовите str.upper для всех символов каждой строки в качестве второго условия сортировки. Это будет ранжировать строчные буквы первыми для строк одинаковой длины.

Python 2 версия

Приведенный выше синтаксис работает только в python3, но вы можете эквивалентно сделать следующее в python2:

sorted( lst, key=lambda x: ((x.lower(),) + tuple(map(str.isupper, x))) )
11
задан alexandrul 23 November 2009 в 07:11
поделиться

2 ответа

Взлом, который я использую для нечетного форматирования во время XmlSerialization, должен иметь специальное свойство, которое только используется во время XmlSerialization

//normal DateTime accessor
[XmlIgnore]
public DateTime Delivered { get; set; }

//special XmlSerialization accessor
[XmlAttribute("DateTime")]
public string XmlDateTime
{
    get { return this.Delivered.ToString("o"); }
    set { this.Delivered = new DateTime.Parse(value); }
}
20
ответ дан 3 December 2019 в 05:36
поделиться

Смотрите на класс XmlAttributeOverrides.

1
ответ дан 3 December 2019 в 05:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: