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