using System.Collections.Generic;
using System.Globalization;
public static void Main()
List<List<string>> _DataCollection = new List<List<string>>
new List<string> {"tom", "abc", "$525.34", "$123"},
new List<string> {"dick", "xyz", "$100", "$234"},
new List<string> {"harry", "", "$250.01", "$40"},
new List<string> {"bob", "", "$250.01", ""},
int ListLength = _DataCollection.First().Count();
var query = _DataCollection.SelectMany(x => x).
Select((v, i) => new { Val = v, Index = i % ListLength })
.Select(z => z.Sum(y => decimal.TryParse(y.Val,NumberStyles.AllowCurrencySymbol | NumberStyles.AllowDecimalPoint ,new CultureInfo("en-US"),out _temp) ? _temp : 0));
foreach (var result in query)
Console.WriteLine("N/A");
Console.WriteLine(String.Format("{0:C}",result));