既然lz 结贴了,我就分享一下我的做法好了using System;
using System.Collections.Generic;
using System.Text;
using System.Data;namespace ConsoleApplication6
{
    class Program
    {
        static void Main(string[] args)
        {
            String[] Units = new String[] { "件", "盒", "瓶" };            DataTable DT = new DataTable();
            DT.Columns.Add(new DataColumn());
            DT.Rows.Add(new Object[] { "3件10盒" });
            DT.Rows.Add(new Object[] { "10件6盒" });
            DT.Rows.Add(new Object[] { "1件9瓶" });            double Value = 0;
            foreach (DataRow DR in DT.Rows)
            {
                String CalString = DR[0].ToString();
                for (int i = 0; i < Units.Length; i++)
                {
                    double M = 1;
                    for (int j = 0; j < i; j++)
                        M *= 10000;
                    CalString = CalString.Replace(Units[i], "*" + M.ToString() + "+");
                }
                if (CalString.Length > 0)
                    CalString = CalString.Remove(CalString.Length - 1);
                Value += Convert.ToDouble(DT.Compute(CalString, String.Empty));
            }            for (int i = 0; i < Units.Length; i++)
            {
                Console.Write((int)Value % (10000) + Units[i]);
                Value /= 10000;
            }
            Console.Read();
        }
    }
}
// 输出: 14件16盒9瓶