小编Mar*_*ans的帖子

Web.GetFileByServerRelativeUrl抛出"值不在预期范围内"

我有一个SP Online网站,我存储文档,添加/检索文档没有问题,但在删除流程中,我在检索File对象时遇到错误.

public static void DeleteDocument()
{
    using (ClientContext ctx = ClientContextFactory.Create("https://my-sponline-site.sharepoint.com/sites/documentsite"))
    {
        Web web = ctx.Web;
        ctx.Load(web);
        ctx.ExecuteQuery();

        string relativeUrl = "/Documents/images.jpg";

        File file = web.GetFileByServerRelativeUrl(relativeUrl);
        ctx.Load(file);
        file.DeleteObject();

        ctx.ExecuteQuery();
    }
}
Run Code Online (Sandbox Code Playgroud)

该文件的完整文件是" https://my-sponline-site.sharepoint.com/sites/documentsite/Documents/images.jpg "(无法访问2016-12-07)

当我执行此操作时,我得到一个ServerException:

价值不在预期范围内.

上下文工作正常,因为我能够从库中添加/检索项目,上下文用户是管理员.

我尝试将web url添加到relativeUrl,所以它将是"/documentsite/Documents/images.jpg",但我得到了同样的错误.

我似乎无法弄清楚这一点,有什么建议吗?

谢谢

c# sharepoint sharepoint-clientobject sharepoint-online

12
推荐指数
1
解决办法
2万
查看次数

通用枚举作为方法参数

给定一个构造函数

public MyObject(int id){
    ID = id;
}
Run Code Online (Sandbox Code Playgroud)

两个枚举:

public enum MyEnum1{
    Something = 1,
    Anotherthing = 2
}

public enum MyEnum2{
    Dodo = 1,
    Moustache= 2
}
Run Code Online (Sandbox Code Playgroud)

是否可以传入通用枚举作为构造函数的参数?我正在寻找一个解决方案:

public MyObject(enum someEnum){
    ID = (int)someEnum;
}
Run Code Online (Sandbox Code Playgroud)

所以你可以这样做:

var newObject = new MyObject(MyEnum1.Something);
var anotherObject = new MyObject(MyEnum2.Dodo);
Run Code Online (Sandbox Code Playgroud)

c# generics enums

8
推荐指数
3
解决办法
9115
查看次数

列出<T> .AddRange和yield语句

我知道yield关键字表示它出现的方法是迭代器.我只是想知道它是如何工作的List<T>.AddRange.

我们使用下面的例子:

static void Main()
{
    foreach (int i in MyInts())
    {
        Console.Write(i);
    }
}

public static IEnumerable<int> MyInts()
{  
    for (int i = 0; i < 255; i++)
    {
        yield return i;
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,在每个yield之后的上述示例中,在foreach循环中返回一个值Main并将其打印到控制台.

如果我们改为Main:

static void Main()
{
    var myList = new List<int>();
    myList.AddRange(MyInts());
}
Run Code Online (Sandbox Code Playgroud)

这是如何运作的?是否AddRange为yield语句返回的每个int调用,还是在添加整个范围之前以某种方式等待所有255个值?

.net c# foreach list

7
推荐指数
1
解决办法
990
查看次数

是否有一个VB .NET等效于C Fall Through交换机?

这不是这个问题的重复:VB.NET Stacking Select Switch Statements就像在Switch C#/ Java中一样.这里提供的答案没有回答我的问题.答案就是说我已经知道VB .Net有一个自动中断.我问是否有任何解决方法.

在C中,可以执行以下操作:

int i = 1;
switch (i) {
   case 1 :
     //Do first stuff
     break;
   case 2 :
     //Do second stuff
     //Fall Through
   case 3 :
     //Do third stuff 
     break;
}
Run Code Online (Sandbox Code Playgroud)

基本上

  • 如果i是1,app会做第一件事.
  • 如果i是2,它将做第二和第三个东西.
  • 如果i是3,它将只做第三个东西.

由于Select caseVB .Net 中每个语句的结尾都有自动中断,有没有人知道如何在VB .Net中实现这一点?

以一种漂亮而美丽的方式,我的意思是......

c vb.net switch-statement select-case

4
推荐指数
1
解决办法
352
查看次数

在WPF中的richtextbox中突出显示关键字

我正在制作一个程序,需要查看一段文字,并查找某些关键字/关键字出现的次数.它还必须突出显示文本中的每个关键词.

我已经设法制作界面,它现在可以跟踪单词出现的次数,但我真的很困惑如何突出显示关键字的位置.我将在下面发布我的代码,非常感谢有关如何在richtextbox中搜索和突出显示文本的任何帮助.由于这是在WPF中,因此无法使用明显的richtextbox.find().

class TextAnalyser
{
    public int FindNumberOfOccurances(List<string> keywords, string email)
    {
        int occurances = 0;
        foreach (string keyword in keywords)
        {
            occurances += email.ToUpper().Split(new string[] { keyword.ToUpper() }, StringSplitOptions.None).Count() - 1; 
        }
        return occurances;
    }

    public void TurnTextRed(List<string> keywords, string email, RichTextBox TextBox)
    {
        foreach(string keyword in keywords)
        {
        }
    }

    public List<string> ConvertTextToList(string text)
    {
        char[] splitChars = {};
        string[] ArrayText = text.Split( splitChars, StringSplitOptions.RemoveEmptyEntries);
        return ArrayText.ToList<string>();
    }

    public string GetStringFromTextBox(RichTextBox TextBox)
    {
        var textRange = new TextRange( …
Run Code Online (Sandbox Code Playgroud)

c# string wpf text highlighting

2
推荐指数
2
解决办法
6570
查看次数

如何在 vb.net 中显示日期和时间的毫秒

我希望将日期 (22/03/2016 23:59:59) 格式化为以毫秒为单位的字符串。

dr.GetDateTime(1).ToString("yyyy-MM-dd hh:mm:ss")

  1. .ToString("yyyy-MM-dd")
  2. .ToString("hh':'mm':'ss")

vb.net

2
推荐指数
1
解决办法
1万
查看次数

根据包含ID的列表选择项目

我有一个Items列表,每个包含一个Type整数字段.

我想过滤我的列表,只获得与给定的整数列表匹配的项目.

我现在的代码有效,但我知道它可以优化.

Class Item
{
    int ID;

    //Other fields & methods that are irrelevant here
}

//Selection method
IEnumerable<Item> SelectItems(List<Item> allItems, List<int> toSelect)
{
     return allItems.Where(x => toSelect.Contains(x.ID));
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我迭代allItems并在每次迭代中迭代toSelect.

我觉得有可能更有效但我不知道如何用Linq实现这一目标.

这可能也是一个已经被问到的问题,因为我不知道这是如何用英语调用的.这感觉有点愚蠢,因为我不知道如何在seach引擎中正确地配置它.

c# linq

1
推荐指数
1
解决办法
46
查看次数

日期时间添加时间跨度而不显示日期VB

我目前正在运行此代码,它将日期显示为如下所示的输出.

Dim started As DateTime = DateTime.Now
Dim date As DateTime = started.Add(diaryItem.Duration)
Run Code Online (Sandbox Code Playgroud)

输出:23/03/2016 17:00:00

是否可以删除日期并仅显示时间?

vb.net date-formatting

0
推荐指数
1
解决办法
88
查看次数

嵌套内联if语句

在VB .Net中,可以使用内联If语句,如下所示

if a Then ret = "A" Else ret = "Not A"
Run Code Online (Sandbox Code Playgroud)

我知道也可以嵌套这些语句.我知道这可能不是一个好的做法,因为可读性下降了......

If a Then If b Then ret = "A & B" Else ret = "A & Not B" Else ret = "Not A"
Run Code Online (Sandbox Code Playgroud)

将按如下方式评估:

If a Then
    If b Then
        ret = "A & B"
    Else
        ret = "A & Not B"
    End If
Else
    ret = "Not A"
End If
Run Code Online (Sandbox Code Playgroud)

现在如果我删除最后一个Else语句,我得到这个:

If a Then If b Then ret = "A & …
Run Code Online (Sandbox Code Playgroud)

vb.net if-statement nested conditional-operator

0
推荐指数
1
解决办法
550
查看次数

为什么CRC16计算如此慢?

我有以下CRC功能:

public static ushort ComputeCRC16(byte[] data)
{
    ushort i, j, crc = 0;
    int size = data.Length;

    for (i = 0; i < size - 2; i++)
    {
        crc ^= (ushort)(data[i] << 8);

        for (j = 0; j < 8; j++)
        {
            if ((crc & 0x8000) != 0) /* Test for bit 15 */
            {
                crc = (ushort)((crc << 1) ^ 0x1234); /* POLYNOMIAL */
            }
            else
            {
                crc <<= 1;
            }
        }
    }

    return crc;
}
Run Code Online (Sandbox Code Playgroud)

我一直在试图用它来计算从一个文件即大约800 KB一个CRC16,但它需要永远,我的意思是五分钟后,价值i …

c# crc crc16

0
推荐指数
1
解决办法
134
查看次数