C# 穿透字符串PowerPoint互操作

C# 穿透字符串PowerPoint互操作,c#,interop,office-addins,C#,Interop,Office Addins,我有两个PowerPoints,一个是原创的,一个是经过编辑的。我在每个PowerPoint中都有一个包含许多单词的文本框。这样做的目的是在已编辑的文档中找到从原始PowerPoint中添加或删除的任何单词,并将它们放入列表中。然后我想把这些已经被添加或删除的单词划掉,但是我不能访问我需要的任何属性,因为我有一个字符串而不是一个文本框。你知道我怎样才能把这些词删掉吗?例如,原文“本文本”编辑了“本新文本”结果“本新文本” 我的代码是fallows List<int>

我有两个PowerPoints,一个是原创的,一个是经过编辑的。我在每个PowerPoint中都有一个包含许多单词的文本框。这样做的目的是在已编辑的文档中找到从原始PowerPoint中添加或删除的任何单词,并将它们放入列表中。然后我想把这些已经被添加或删除的单词划掉,但是我不能访问我需要的任何属性,因为我有一个字符串而不是一个文本框。你知道我怎样才能把这些词删掉吗?例如,原文“本文本”编辑了“本新文本”结果“本新文本”

我的代码是fallows

        List<int> originalShapesListID = new List<int>();
        List<int> editedShapesListID = new List<int>();
        List<int> originalListID = new List<int>();
        List<int> editedListID = new List<int>();
        List<Microsoft.Office.Interop.PowerPoint.Shape> originalList = new List<Microsoft.Office.Interop.PowerPoint.Shape>();
        List<Microsoft.Office.Interop.PowerPoint.Shape> editList = new List<Microsoft.Office.Interop.PowerPoint.Shape>();
        Microsoft.Office.Interop.PowerPoint.Shape editedShpID;
        List<Microsoft.Office.Interop.PowerPoint.Shape> originalListWords = new List<Microsoft.Office.Interop.PowerPoint.Shape>();
        List<char> editListWords = new List<char>();
        editedShpID = null;
        Microsoft.Office.Interop.PowerPoint.Shape originalShpID;
        long editedShapeID;
        long originalShapeID;
        editedShapeID = 0;
        originalShapeID = 0;
        originalShpID = null;
        originalShp = null;
        editShp = null;
        Microsoft.Office.Interop.PowerPoint.TextFrame txtFrame;
        char delimiter = Convert.ToChar(" ");
        List<string> one = new List<string>();
        List<string> two = new List<string>();
        int indexOfWord = 0;
检查是否有添加或删除的单词

    var q = from original in originalList
            join editedTmp in editList on original.Id equals editedTmp.Id into g
            from edited in g.DefaultIfEmpty()
            select new
            {
                original,
                edited
            };



    //foreach  through both lists
    foreach (var item in q)
    {


        List<string> diff;

        var originalString = item.original.TextFrame.TextRange.Text;
    var editString = item.edited.TextFrame.TextRange.Text;

    var firstStringList = originalString.Split(delimiter).ToList();

    var secondStringList = editString.Split(delimiter).ToList();

        if (secondStringList.Count() > firstStringList.Count())
        {
            diff = secondStringList.Except(firstStringList).ToList();
            //change to blue for added word

        }
        else
        {

            diff = firstStringList.Except(secondStringList).ToList();


            // change to red for deleted word
        }
var q=原始列表中的原始值
在原始.Id等于editedTmp.Id的editList中将editedTmp加入到g中
从g.DefaultIfEmpty()中编辑
选择新的
{
起初的
编辑
};
//浏览两个列表
foreach(q中的var项目)
{
列表差异;
var originalString=item.original.TextFrame.TextRange.Text;
var editString=item.edited.TextFrame.TextRange.Text;
var firstStringList=originalString.Split(分隔符).ToList();
var secondStringList=editString.Split(分隔符).ToList();
if(secondStringList.Count()>firstStringList.Count())
{
diff=secondStringList.Except(firstStringList.ToList();
//更改为蓝色以添加单词
}
其他的
{
diff=firstStringList.Except(secondStringList.ToList();
//将已删除的单词更改为红色
}
}

    var q = from original in originalList
            join editedTmp in editList on original.Id equals editedTmp.Id into g
            from edited in g.DefaultIfEmpty()
            select new
            {
                original,
                edited
            };



    //foreach  through both lists
    foreach (var item in q)
    {


        List<string> diff;

        var originalString = item.original.TextFrame.TextRange.Text;
    var editString = item.edited.TextFrame.TextRange.Text;

    var firstStringList = originalString.Split(delimiter).ToList();

    var secondStringList = editString.Split(delimiter).ToList();

        if (secondStringList.Count() > firstStringList.Count())
        {
            diff = secondStringList.Except(firstStringList).ToList();
            //change to blue for added word

        }
        else
        {

            diff = firstStringList.Except(secondStringList).ToList();


            // change to red for deleted word
        }