Pergunta

Eu tenho enum assim

[Flags]
public enum Key
{
  None = 0,
  A = 1,
  B = 2,
  C = 4
}

Eu tenho o seguinte

Key k1 = Key.A | Key.B | Key.C;

Quero obter a chave em k1 que tenha o valor mais baixo.Como eu posso fazer isso?

Exemplo:

Key k1 = Key.A | Key.B | Key.C; // I want a 
Key k2 = Key.B | Key.C; // I want b
Key k3 = Key.A | Key.C; // I want a
Foi útil?

Solução

Keys key = Keys.b | Keys.c;

var lowest = Enum.GetValues(typeof(Keys))
    .Cast<Keys>()
    .OrderBy(x => x)
    .FirstOrDefault(x => key.HasFlag(x));

Versão um pouco mais eficiente e .NET 4.0 do método LINQ.

Outras dicas

Certifique-se de que a conta tenha as seguintes permissões

- alterações do diretório de replicador

--replicando o diretório muda tudo

-replicando alterações do diretório no conjunto filtrado

sincronização de replicação

http://naimmurati.wordpress.com / 2012/05/29 / User-Profiles-Synchronization-Job-Not-Synchronizing /

Keys key = Keys.b | Keys.c;

var lowest = Enum.GetValues(typeof(Keys))
    .OfType<Keys>()
    .Where(x => (x & key) != 0)
    .OrderBy(x => x)
    .DefaultIfEmpty((Keys)0);

Console.WriteLine(lowest);

Se você tiver apenas 3 valores na enumeração, provavelmente o mais rápido e fácil é verificá -los um por um. Para uma solução geral, no entanto, você pode tentar converter o valor de k1 Para inteiro, encontre a maior potência de 2 que o divide e converta -o de volta ao valor do enum das teclas.

  1. Obtenha uma lista de todos os valores na enumeração
  2. Mapeie esses valores para algum tipo de tipo de dados comparável
  3. Compare todos os valores e acompanhe o mais baixo
  4. Converter o mais baixo de volta ao tipo de enumeração

Você pode usar o BCS para se conectar ao sistema de arquivos e mostrar os dados como ele é armazenado no SharePoint.

.

Serviços de conectividade de negócios, que permite que os usuários leiam e escrevam dados de sistemas externos - através de serviços da Web, bancos de dados e Microsoft .NET Framework Conjuntos

Aqui estão alguns links úteis para ajudá-lo a caminho

Criando conectores de serviços de conectividade de negócios personalizados usando o SharePoint Server 2010 amostra de código: myfileconnector conector de indexação personalizada

O código que você publicou originalmente não faz sentido: a+b+c não é prefixado por um nome de tipo, para que eles não se referam aos nomes de enum aos quais parecem se referir.

Além disso, se você usar um pouco e combinar bandeiras, o resultado conterá todas as bandeiras em tudo Paramters - neste caso, nenhum.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top