簡體   English   中英

如何從字符串數組動態創建 object?

[英]How to create an object dynamically from a string array?

我在 C# 中有一個字符串數組,如下所示:

String[] myArray = {"1","Jack","18","2","John","22","3","Mark","29"}

實際上我的數組中有 3 個對象,第一列是 ID,第二列是姓名,第三列是年齡。 所以我需要在我的 SQL 表中插入 3 行,每行代表一個人。

處理它的最佳方法是什么?

我嘗試:

Person p = new Person();
for (int i = 0; i <= myArray.Length; i++)
{
    if (i==0) p.Id = myArray[i];
    if (i==1) p.Name = myArray[i];
    if (i==2) p.Age = myArray[i];
    if (i%3==0) AddNewRecord(p);
}

但是我怎樣才能從我的數組中刪除第一個 object 並再次從 0 開始呢?

謝謝。

附言。 找不到適合我的問題的標題,抱歉,如果您可以編輯,我們將不勝感激。

編輯:Java 或 C# 回答,我都可以

您只需使用前三個值來創建一個 Person object,然后每 3 次迭代調用AddNewRecord 相反,每第 3 次迭代,您需要將p設置為一個新的 Person,以防止改變已經用於調用AddNewRecord的現有 Person object。 為避免僅使用前 3 個數組元素,您也希望對它們使用 %3。 0 % 3 = 0, 1 % 3 = 1, 2 % 3 = 2, 3 % 3 = 0。任何數字 % 3 都會告訴您您的 ID、姓名或年齡。

我認為值得一問為什么你有一個包含 object 數據的字符串數組。 為什么不在將所有信息放入數組之前創建 Person 以避免此問題?

試試下面的代碼,這是你期望的

for (int i = 0; i <= myArray.Length; i++)
{
if (i == 0) p.ID = myArray[i];
if (i == 1) p.Name = myArray[i];
if (i == 2) p.Age = myArray[i];
if (i!=0 && i % 2 == 0)
{
    if (myArray.Length > 0)
    {
        myArray = myArray.Skip(3).ToArray();
    }
    i = 0;
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM