我有一个课程如下。
// The data store containing the list of Country
var country = Ext.create('Ext.data.Store', {
fields: ['iso3', 'id'],
proxy: {
type: 'ajax',
url: 'countryList.json',
reader: {
type: 'json',
rootProperty: 'countrylist'
}
},
autoLoad: true
});
// Create form with the combo box, attached to the country data store
Ext.create('Ext.form.Panel', {
title: 'Country List Example with ComboBox',
bodyPadding: 10,
items: [{
xtype: 'combo',
fieldLabel: 'Choose Country',
store: country,
queryMode: 'local',
displayField: 'iso3',
valueField: 'id',
listeners: {
select: function (field, record) {
Ext.Msg.alert('Success', `Selected country <br> iso3 : <b>${record.get('iso3')}</b> <br> id : <b>${record.get('id')}</b>`);
}
}
}],
renderTo: Ext.getBody(),
buttons: [{
text: 'Get Combo Value/Record on button click',
handler: function () {
var record = this.up('form').down('combo').getSelectedRecord();
if (record) {
Ext.Msg.alert('Success', `Selected country <br> iso3 : <b>${record.get('iso3')}</b> <br> id : <b>${record.get('id')}</b>`)
} else {
Ext.Msg.alert('Info', 'Please select contry first.. :)');
}
}
}]
});
我得到一些由&#39; |&#39;分隔的字符串值进入字符串数组并按如下方式删除它。
public class PurgeRecord
{
public int Index { get; set; }
public string Source { get; set; }
public int PurgeFileID { get; set; }
public string AuthorisationID { get; set; }
public string RecordSystem { get; set; }
public string KeyName { get; set; }
public string[] KeyValues { get; set; }
public bool IsValid { get; set; }
public string Action { get; set; }
public string ErrorDetail { get; set; }
public string FileName { get; set; }
}
但是我收到了一个错误,因为无法将字符串转换为字符串[]。我尝试了很多方法,并尝试谷歌搜索,但没有运气。
请帮忙。
答案 0 :(得分:0)
Split
本身会返回String[]
将字符串拆分为基于数组中字符的子字符串。
语法
public string[] Split(params char[] separator)
只需更新您的代码
这
string[] test = Convert.ToString(values[5]).Split('|');
与
string[] test = values[5]).Split('|');
答案 1 :(得分:0)
你可以简单地把它放在string[]
这样的内容中:
KeyValues = new string[] { key }
甚至更短的格式:
KeyValues = new [] { key }
答案 2 :(得分:0)
KeyValues
属性类型为string
数组,当您尝试初始化PurgeRecord
实例时,您尝试将string
插入string[]
所以这就是你应该做的:
//Every object instance in C# have the function 'ToString'.
string[] test = values[5].ToString().Split('|');
foreach (string key in test)
{
purgeRecord = new PurgeRecord()
{
//Create an array to insert in the values, but probably this is the KeyName
KeyValues = new[] { key },
IsValid = true,
FileName = "XYZ"
};
lstPurgeRecords.Add(purgeRecord);
}
与Linq
有一个很好的方法:
lstPurgeRecords = values[ 5 ]
.ToString()
.Split( '|' )
.Select( key => new PurgeRecord
{
KeyValues = new[] { key },
IsValid = true,
FileName = "XYZ"
} );