次のデータを含む2つのテーブルがあります
親テーブル
S.No Name Fields
111 Parent1 title,fname,mname,lname,addr1,city,state,zip,county
112 Parent2 Address1,lname,firstName,suffix,countrycode,gender,zip,state,city,address2,email,phone
子テーブル
S.No mappingField FieldIndex ParentId
1 FirstName 1 111
2 LastName 3 111
3 AddressLine1 4 111
4 Country 8 111
5 LastName 1 112
6 FirstName 2 112
7 zip 6 112
8 state 7 112
9 workemail 10 112
10 workPhone 11 112
次に、Field(親テーブル) に基づいて FieldIndex(子テーブル) を含む文字列を次の形式で作成する必要があります。
フィールド列(親)の順序で出力文字列が期待されています。使用可能なマッピングフィールド(子)がある場合は、それが表示され、他のすべての値は「$」記号に置き換えられる必要があります..
ParentId 111 -- (9 fields)
$|FirstName|$|LastName|AddressLine1|$|$|$|Country
ParentId 112 --(12 fields)
$|LastName|FirstName|$|$|$|zip|state|$|$|workemail|workPhone
これが私のコードです:
private string mapping(ChildData, ParentData)
{
string[] fieldList = ChildData.Fields;
var IndInfoList = new List<string>();
string[] headerList = ParentData.Fields.Split(',');
for (var i = 0; i < headerList.Length; i++)
{
bool alreadyAdded = false;
foreach (MyFields fields in fieldList)
{
if (i == ChildData.FieldIndex)
{
IndInfoList.Add(ChildData.mappingField);
}
else
{
if (!alreadyAdded)
{
IndInfoList.Add("$");
alreadyAdded = true;
}
}
}
}
string dataMapString = string.Join("|", IndInfoList);
return dataMapString;
}