Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从sharepoint列表项C中删除第一个字符_C#_Sharepoint - Fatal编程技术网

C# 如何从sharepoint列表项C中删除第一个字符

C# 如何从sharepoint列表项C中删除第一个字符,c#,sharepoint,C#,Sharepoint,我有一行基本上搜索sharepoint列表的代码,如果它找到与pdf匹配的名称,那么它会将其附加到sharpoint列表中的该项目。我的问题是我正在搜索一个整数,但是我正在搜索的列表中的列在所有整数之前有一个“m” 例如,我正在搜索序列号88912,但它永远找不到它,因为在列表中它是一个M88912。我在下面附上了具体代码 命名空间SharepointAttach { 公共静态类附件 { }当您从文件中获取整数时,您正在删除M。为什么不重新添加它呢 var filename = "M" + re

我有一行基本上搜索sharepoint列表的代码,如果它找到与pdf匹配的名称,那么它会将其附加到sharpoint列表中的该项目。我的问题是我正在搜索一个整数,但是我正在搜索的列表中的列在所有整数之前有一个“m”

例如,我正在搜索序列号88912,但它永远找不到它,因为在列表中它是一个M88912。我在下面附上了具体代码

命名空间SharepointAttach { 公共静态类附件 {


}

当您从文件中获取整数时,您正在删除M。为什么不重新添加它呢

var filename = "M" + result;
或者更好的是,你为什么要把号码拿出来

var filename = Path.GetFileNameWithoutExtension(f);

我可以通过在代码的下半部分添加以下内容来解决此问题:

   private static ListItem FindUMLogListItem(int serial)
    {
        bool result;
        int endserial, startserial;
        ClientContext clientContext = new ClientContext("http://companyweb");
        List oList = clientContext.Web.Lists.GetByTitle("UM Log");
        CamlQuery camlQuery = new CamlQuery();
        camlQuery.ViewXml = "<View></View>";
        ListItemCollection collListItem = oList.GetItems(camlQuery);
        clientContext.Load(collListItem);
        clientContext.ExecuteQuery();
        foreach (ListItem oListItem in collListItem)
        {

            result = int.TryParse(Regex.Match(oListItem["Title"].ToString(), @"\d+", RegexOptions.IgnorePatternWhitespace).Value, out startserial);
            result = int.TryParse(Regex.Match(oListItem["Ending_x0020_Serial"].ToString(), @"\d+", RegexOptions.IgnorePatternWhitespace).Value, out endserial);
            if ((serial >= startserial) && (serial <= endserial))
                return oListItem;
        }
        return null;

通过添加regex.match,我可以在将字符串转换为整数之前删除M。谢谢!

因此,主要原因是,整数用于查找序列号是否在某个范围内。因此,公司网站上的列的起始序列号可以是81110,结束序列号可以是81115,只要我的pdf文件名在这两个范围内,然后文件附加。我只是不认为有办法使用字符串变量来实现这一点。另一个选择是,如果有办法批量更新sharepoint列表,以在开始序列列和结束序列列上完全去掉M。有办法吗?@Ben我认为这是正确的吗FindLogListItem中的t int.tryparses都失败了?如果是这样,您只需要在解析之前删除M。这不是您要查找的吗?没错,但现在我正在查看它,当我运行调试器并逐行跟踪它时,开始和结束序列号都显示为0。可能我没有调用正确的sharpoint列表的一部分?那么基本上…在解析之前删除M,就像我说的?
   private static ListItem FindUMLogListItem(int serial)
    {
        bool result;
        int endserial, startserial;
        ClientContext clientContext = new ClientContext("http://companyweb");
        List oList = clientContext.Web.Lists.GetByTitle("UM Log");
        CamlQuery camlQuery = new CamlQuery();
        camlQuery.ViewXml = "<View></View>";
        ListItemCollection collListItem = oList.GetItems(camlQuery);
        clientContext.Load(collListItem);
        clientContext.ExecuteQuery();
        foreach (ListItem oListItem in collListItem)
        {

            result = int.TryParse(Regex.Match(oListItem["Title"].ToString(), @"\d+", RegexOptions.IgnorePatternWhitespace).Value, out startserial);
            result = int.TryParse(Regex.Match(oListItem["Ending_x0020_Serial"].ToString(), @"\d+", RegexOptions.IgnorePatternWhitespace).Value, out endserial);
            if ((serial >= startserial) && (serial <= endserial))
                return oListItem;
        }
        return null;