Я не думаю, что можно сделать это непосредственно. Вы могли создать класс, содержащий и Ваш object
и double
, и поместить экземпляр его в словаре все же.
class Pair
{
object obj;
double dbl;
}
Dictionary<int, Pair> = new Dictionary<int, Pair>();
Delphi имеет модуль XSBuiltIns (начиная с Delphi 6), который содержит типы данных, которые могут помочь вам преобразовать некоторые типы данных XML:
(есть и другие, например TXSDecimal , вы поняли)
Все они содержат по крайней мере эти два метода:
Вы можете использовать его так:
with TXSDateTime.Create() do
try
AsDateTime := ClientDataSetParam.AsDateTime; // convert from TDateTime
Attribute.DateTimeValue := NativeToXS; // convert to WideString
finally
Free;
end;
with TXSDateTime.Create() do
try
XSToNative(XmlAttribute.DateTimeValue); // convert from WideString
CurrentField.AsDateTime := AsDateTime; // convert to TDateTime
finally
Free;
end;
Это должно вас подтолкнуть.
- jeroen
Модуль OmniXML OmniXMLUtils содержит набор функций для преобразования XML на текущий момент и дату в XML.
function XMLStrToDateTime(nodeValue: XmlString; var value: TDateTime): boolean; overload;
function XMLStrToDateTime(nodeValue: XmlString): TDateTime; overload;
function XMLStrToDateTimeDef(nodeValue: XmlString; defaultValue: TDateTime): TDateTime;
function XMLStrToDate(nodeValue: XmlString; var value: TDateTime): boolean; overload;
function XMLStrToDate(nodeValue: XmlString): TDateTime; overload;
function XMLStrToDateDef(nodeValue: XmlString; defaultValue: TDateTime): TDateTime;
function XMLStrToTime(nodeValue: XmlString; var value: TDateTime): boolean; overload;
function XMLStrToTime(nodeValue: XmlString): TDateTime; overload;
function XMLStrToTimeDef(nodeValue: XmlString; defaultValue: TDateTime): TDateTime;
function XMLDateTimeToStr(value: TDateTime): XmlString;
function XMLDateTimeToStrEx(value: TDateTime): XmlString;
function XMLDateToStr(value: TDateTime): XmlString;
function XMLTimeToStr(value: TDateTime): XmlString;