C# 如何计算c中两点之间的距离#

C# 如何计算c中两点之间的距离#,c#,C#,我想用这个公式来计算两点之间的距离。但是我如何把公式写进去呢。如何将var更改为double?因为我无法执行数学运算,因为数组是var 以下是我的示例代码: using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Console1

我想用这个公式来计算两点之间的距离。但是我如何把公式写进去呢。如何将var更改为double?因为我无法执行数学运算,因为数组是var 以下是我的示例代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Console1
{
    class Program
    {
        static void Main(string[] args)
        {

            DataTable dt1= ConvertToDataTable(@"C:\Users\manchunl\Desktop\Sample1.txt", 10);
            DataTable dt2= ConvertToDataTable2(@"C:\Users\manchunl\Desktop\Sample2.txt", 10);

            foreach (DataRow row in dt1.AsEnumerable())
            {
                string.Join(",", row.ItemArray.Select(x => x.ToString()));
            }

            foreach (DataRow row in dt2.AsEnumerable())
            {
                string.Join(",", row.ItemArray.Select(x => x.ToString()));
            }


            foreach (DataRow row1 in dt1.Rows)
            {
                foreach (DataRow row2 in dt2.Rows)
                {
                    var array1 = row1.ItemArray;
                    var array2 = row2.ItemArray;

                    if (array2[4].Equals(array1[4]))
                    {
                        var x1 = array1[7];
                        var y1 = array1[8];
                        var x2 = array2[7];
                        var y2 = array2[8];



                    }
                }
            }


            Console.WriteLine();
            Console.WriteLine("Press enter to exit.");
            Console.Read();
        }


        public static DataTable ConvertToDataTable(string filePath, int numberOfColumns)
        {


            DataTable tbl = new DataTable();

            for (int col = 0; col < numberOfColumns; col++)
                tbl.Columns.Add(new DataColumn("Column" + (col + 1).ToString()));


            string[] lines = System.IO.File.ReadAllLines(filePath);

            foreach (string line in lines)
            {
                var cols = line.Split(null);

                DataRow dr = tbl.NewRow();
                for (int cIndex = 0; cIndex < numberOfColumns; cIndex++)
                {
                    dr[cIndex] = cols[cIndex];

                }

                tbl.Rows.Add(dr);

            }

            return tbl;
        }

        public static DataTable ConvertToDataTable2(string filePath, int numberOfColumns)
        {


            DataTable tbl = new DataTable();

            for (int col = 0; col < numberOfColumns; col++)
                tbl.Columns.Add(new DataColumn("Column" + (col + 1).ToString()));


            string[] lines = System.IO.File.ReadAllLines(filePath);

            foreach (string line in lines)
            {
                var cols = line.Split(',');

                DataRow dr = tbl.NewRow();
                for (int cIndex = 0; cIndex < numberOfColumns; cIndex++)
                {
                    dr[cIndex] = cols[cIndex];

                }

                tbl.Rows.Add(dr);

            }

            return tbl;
        }

    }
}
使用系统;
使用System.Collections.Generic;
使用系统数据;
使用System.IO;
使用System.Linq;
使用系统文本;
使用System.Threading.Tasks;
命名空间控制台1
{
班级计划
{
静态void Main(字符串[]参数)
{
DataTable dt1=ConvertToDataTable(@“C:\Users\Manguinl\Desktop\Sample1.txt”,10);
DataTable dt2=ConvertToDataTable2(@“C:\Users\Manguinl\Desktop\Sample2.txt”,10);
foreach(dt1.AsEnumerable()中的DataRow行)
{
Join(“,”,row.ItemArray.Select(x=>x.ToString());
}
foreach(dt2.AsEnumerable()中的DataRow行)
{
Join(“,”,row.ItemArray.Select(x=>x.ToString());
}
foreach(dt1.Rows中的数据行row1)
{
foreach(dt2.Rows中的数据行第2行)
{
var array1=row1.itemrarray;
var array2=row2.itemrarray;
if(array2[4]。等于(array1[4]))
{
var x1=阵列1[7];
var y1=阵列1[8];
var x2=array2[7];
var y2=array2[8];
}
}
}
Console.WriteLine();
控制台。WriteLine(“按enter键退出”);
Console.Read();
}
公共静态数据表ConvertToDataTable(字符串文件路径,int numberOfColumns)
{
DataTable tbl=新的DataTable();
for(int col=0;col
您可以使用数学功能计算两点之间的坡度

int distX = int.Parse(x2) - int.Parse(x1);
int distY = int.Parse(y2) - int.Parse(y1);

double result = Math.Sqrt(distX * distX + distY * distY)
而且,它们都是数学类的静态函数

利用Pow函数

double result = Math.Sqrt(Math.Pow(distX, 2) + Math.Pow(distY,2))

可以使用数学功能计算两点之间的坡度

int distX = int.Parse(x2) - int.Parse(x1);
int distY = int.Parse(y2) - int.Parse(y1);

double result = Math.Sqrt(distX * distX + distY * distY)
而且,它们都是数学类的静态函数

利用Pow函数

double result = Math.Sqrt(Math.Pow(distX, 2) + Math.Pow(distY,2))


因为数组是var“eeeh,什么?很难理解你在说什么。什么是
ItemArray
double distance=Math.Sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))var
的情况下,code>本身不是一个类型,它只是表示隐式类型
array1
与第1行的类型完全相同。ItemArray
。它显示运算符“-”不能应用于“object”和“int”类型的操作数。如果
var
混淆,请不要使用它…改用实际类型。也许这会让事情变得更清楚。
array1[7]
的数据类型是什么?“因为数组是var”Eeeeh,什么?很难理解你在说什么。什么是
ItemArray
double distance=Math.Sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))var
的情况下,code>本身不是一个类型,它只是表示隐式类型
array1
与第1行的类型完全相同。ItemArray
。它显示运算符“-”不能应用于“object”和“int”类型的操作数。如果
var
混淆,请不要使用它…改用实际类型。也许这会让事情变得更清楚。
array1[7]
的数据类型是什么?运算符“-”不能应用于“object”和“int”类型的操作数@appleorange,x1、x2、y1、y2中的值是什么?实际值与txt文件中的值相同?整数值@appleorange然后将其解析为整数。我更新了我的答案,请检查。我希望它能起作用,但还是不行。那里的x1,x2,y1,y2总是有问题。我尝试将上述部分从var转换为int,但它始终显示我无法转换对象类型:(运算符)不能应用于“对象”和“INT'`Apple橙色”的操作数,在X1、X2、Y1、Y2中出现的值与TXT文件的整数值相同。@ Apple En橘红然后将其解析为整数。我更新了我的答案,请检查。我希望它能工作。仍然不能。X1、X2、Y1、Y2总是有问题。我尝试解决以上问题。t从var转换为int,但始终显示无法转换对象类型:(