我有一個正在從我的數據庫表中填充的列表,我正在嘗試稍後在代碼中進行轉換。我無法進行轉換,因爲程序讀取的是空值,並表示這是非法操作,所以我認爲在將它們添加到列表之前排除空值可能是我的最佳選擇。我知道有很多類似的帖子,但我已經嘗試了其中幾個沒有運氣。這是列表oldNames。我試過oldNames = oldNames.Where(m => !string.IsNullOrEmpty(m)).ToList();
, oldNames.RemoveAll(string.IsNullOrWhiteSpace);
, oldNames.Where(i => i != null).ToList().Add(actualPDF);
但是我需要從他們那裏得到一個計數,所有這三個返回0的計數爲for (int i = 0; i < oldNames.Count; i++)
。任何幫助將不勝感激,謝謝!如何從列表中刪除空然後添加
List<string> oldNames = new List<string>(); //<----
public Form1()
{
InitializeComponent();
SqlConnection con = new SqlConnection(@"Data Source=x; Initial Catalog=x; Integrated Security=True;");
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM x", con);
DataTable dt = new DataTable();
sda.Fill(dt);
FolderBrowserDialog fbd = new FolderBrowserDialog();
fbd.RootFolder = Environment.SpecialFolder.Desktop;
if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
txtFileLocation.Text = fbd.SelectedPath;
}
string[] files = Directory.GetFiles(txtFileLocation.Text, "*.*", SearchOption.AllDirectories);
foreach (string val in files)
{
listBox2.Items.Add(Path.GetFileName(val));
}
foreach (DataRow row in dt.Rows)
{
var actualPDF = row["x"].ToString();
var namedFN = row["y"].ToString();
var fileID = row["z"].ToString();
var filesinFolder = listBox2.Items.ToString();
listBox1.Items.Add(fileID);
listBox4.Items.Add(namedFN);
oldNames.Add(actualPDF); // <--- This List
}
}
什麼是實際'NULL'在這裏?如果存在來自數據庫的不希望選擇的NULL值,那麼可以用SQL WHERE someColumn IS NOT NULL之類的東西排除它們。 – David
您能澄清最後一條語句(關於需要獲取計數)?你是否說排除所有空值後列表爲空?是否有任何非空值被添加到列表中? – Jacob
我會嘗試你說的@David,看看它是否適合我。雅各布沒有任何東西被添加到列表中,但是當我使用上面代碼中看到的原始方式時,所有值都被添加到列表中,包括空值 – rychrist88