我想為資料表中的每個資料行獲取三列的總和。我有一個大約 15 列的 DT,我只想要第 7 列、第 9 列和第 10 列的總和。所有列都是字串型別。我嘗試了幾種使用 LINQ 的方法,但都失敗了。
uj5u.com熱心網友回復:
如果所有列都是字串但實際上表示浮點數:
double totalSum = dt.AsEnumerable()
.Sum(r=> double.Parse(r[7].ToString()) double.Parse(r[9].ToString()) double.Parse(r[10].ToString()));
如果有些是空的或有無效的數字,你需要使用double.TryParse.
uj5u.com熱心網友回復:
這是解決方案,即使列型別是字串,它也對我有用:
for (int i = 11; i < dt.Rows.Count; i )
{
for (int j = 14; j <= 18; j = 2)
{
if (j > 17)
j -= 1;
if(!string.IsNullOrEmpty(dt.Rows[i][2].ToString()))
{
newdt.Rows.Add(dt.Rows[i][18], dt.Rows[i][19],
dt.Rows[i][j]);
}
}
}
try
{
var result = 0;
if (newdt.Rows.Count != 0)
{
result = newdt.AsEnumerable().Sum(x => Convert.ToInt32(x["Column7"]));
subdt.Rows.Add(dt.Rows[i][18], dt.Rows[i][19], result)
}
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/411346.html
標籤:
上一篇:來自通過產生元素生成的IEnumerable的隨機樣本?
下一篇:C#-List<Items>中的專案與List<ItemsContainer>中的ItemsContainer之間的匹配
